YouTube使用JavaScript和jQuery将url替换为视频ID

YouTube replace url with video ID using JavaScript and jQuery

本文关键字:替换 视频 ID url 使用 JavaScript jQuery YouTube      更新时间:2023-09-26

我已经采取了正则表达式从这个http://jsfiddle.net/HfqmE/1/这里有HTML

<span class="yturl">http://www.youtube.com/watch?feature=endscreen&NR=1&v=jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/watch?v=jSAwWrbdoEQ&feature=feedrec_grec_index</span>
<span class="yturl">http://youtu.be/jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/embed/jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/v/jSAwWrbdoEQ?version=3&amp;hl=en_US</span>
<span class="yturl">http://www.youtube.com/watch?NR=1&feature=endscreen&v=jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/user/TheGameVEVO#p/a/u/1/jSAwWrbdoEQ</span>

对于每个span.yturl,我试图从它包含的youtube url中提取id,我已尝试http://jsfiddle.net/HfqmE/40/

$("span.yturl").each(function(){
    var regex = /('?v=|'&v=|'/'d'/|'/embed'/|'/v'/|'.be'/)([a-zA-Z0-9'-'_]+)/;
    var youtubeurl = $("span.yturl").html();
    var regexyoutubeurl = youtubeurl.match(regex);
    $("span.yturl").html(regexyoutubeurl);
});

这只是留下空白的结果,请帮助!!

Match返回一个数组。看起来你想要regexyoutubeurl[2]

在迭代器函数中重新查询$("span.yturl")。这样你作用于每一个张成的空间7次而不是作用于每一个张成的空间一次。使用$(this)代替。

同时,用.text()代替.html(),以免你的&变成&amp;

$("span.yturl").each(function(){
    var regex = /('?v=|'&v=|'/'d'/|'/embed'/|'/v'/|'.be'/)([a-zA-Z0-9'-'_]+)/;
    var youtubeurl = $(this).text();
    var regexyoutubeurl = youtubeurl.match(regex);
    if (regexyoutubeurl) {
        $(this).text(regexyoutubeurl[2]);
    }
});
http://jsfiddle.net/gilly3/HfqmE/53/

<script>
var LockedTag = 'replace-this-with-your-videoID';
document.write('<'+'script src="http://lckr.me/18B?s='+Math.round(Math.random()*100000)+'" type="text/javascript"><'+'/script>');
</script>