嗨,我今天的问题是使用正则表达式来解析URL。我想先将任何YouTube网址转换为嵌入视频,然后将剩余的网址(只是常规链接)转换为href链接。我已经得到了这两个工作,我的问题是,我已经得到了YouTube的网址转换后的第二个正则表达式替换了YouTube上的视频,所以我需要做的是忽略iframe标签理想。我会第一个承认我在正则表达式中非常可怕,所以我会非常感谢一些帮助,我认为对于那些有正则表达式的人来说这不会太困难。使用Youtube和非Youtube链接解析正则表达式URL
干杯, 乔丹
<script type="text/javascript">
function linkifyYouTubeURLs() {
//replaces youtubeurls with iframe
var re = /https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[?=&+%\w-]*/ig;
document.getElementById('CPH_Main_postContent').innerHTML = document.getElementById('CPH_Main_postContent').innerHTML.replace(re, '<br><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="350" src="http://www.youtube.com/embed/$1" frameborder="0"> </iframe><br>');
//replaces urls with links
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
document.getElementById('CPH_Main_postContent').innerHTML = document.getElementById('CPH_Main_postContent').innerHTML.replace(exp, "<a href='$1'>$1</a>");
}
非常感谢Mikhail,它完美地解决了它!你是一个拯救生命的人,希望我能给你买一瓶啤酒! – 2013-03-12 06:54:35