剥离网址以获取YouTube ID

时间:2011-08-01 10:49:40

标签: javascript jquery regex replace youtube

我有:

var post = $('.post');
post.find('.video embed').each(function(){
    v = $(this);
    youtubeID = v.attr('src').replace(/^.*youtube.com.*(?:\/|v=)(\w+)\//g,"");
    console.log(youtubeID);
})

以下是从embed src

中获取的示例网址

http://www.youtube.com/v/_eeZnLX_XBM&rel=0&egm=0&showinfo=0&fs=1

它将所有内容剥离到/v/但不包括&符号以及之后的所有内容。

我只想要_eeZnLX_XBM

4 个答案:

答案 0 :(得分:2)

尝试:

youtubeID = v.attr('src').match(/youtube\.com.*?v[\/=](\w+)/)[1];

答案 1 :(得分:1)

所以只需为其余部分添加另一个替代品:

var post = $('.post');
post.find('.video embed').each(function(){
    v = $(this);
    youtubeID = v.attr('src').replace(/^.*youtube.com.*(?:\/|v=)(\w+)\//g,"").replace(/&.*/g, "");
    console.log(youtubeID);
})

答案 2 :(得分:1)

var url = v.attr('src');
youtubeID = url.substring(url.lastIndexOf('/') + 1 ,url.indexOf('&'));

答案 3 :(得分:0)

试试这个:

$('.post').find('.video embed').each(function(){
    youtubeID = $(this).attr('src').match(/\/([^&/]+)&/)[1];

    console.log(youtubeID);
})

visualization of the regex