javascript - YouTube 网址 ID 正则表达式

标签 javascript jquery regex url youtube

<分区>

Possible Duplicate:
Regex to parse youtube yid

你可能不会想到另一个,但这里我有一个 jquery 正则表达式,我发现它在大多数 url accpet 底部工作正常:

http://www.youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index
http://www.youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o
http://www.youtube.com/v/0zM3nApSvMg?fs=1&amp;hl=en_US&amp;rel=0
http://www.youtube.com/watch?v=0zM3nApSvMg#t=0m10s
http://www.youtube.com/embed/0zM3nApSvMg?rel=0
http://www.youtube.com/watch?v=0zM3nApSvMg
http://youtu.be/0zM3nApSvMg

正则表达式

/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/

但这不能从下面的 url 中提取 id(在这个例子中,id 是 pa14VNsdSYM)

http://www.youtube.com/watch?feature=endscreen&NR=1&v=pa14VNsdSYM

我如何使用正则表达式从 url 中提取 id,例如上面的那个。

最佳答案

youtube url id 始终包含 11 个字符数字下划线和/或破折号。这是我用过的正则表达式,没有问题:

var re = /[a-zA-Z0-9\-\_]{11}/;
var youtubeurl = "http://www.youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index";
alert(youtubeurl.match(re));

编辑:这个解决方案实际上并不能 100% 有效,第一个和第二个 url 会有问题,因为正则表达式匹配的文本不是视频 ID。

Edit2:试试这个:

var re = /(\?v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
var urlArr = [
    "http://www.youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index",
    "http://www.youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o",
    "http://www.youtube.com/v/0zM3nApSvMg?fs=1&amp;hl=en_US&amp;rel=0",
    "http://www.youtube.com/watch?v=0zM3nApSvMg#t=0m10s",
    "http://www.youtube.com/embed/0zM3nApSvMg?rel=0",
    "http://www.youtube.com/watch?v=0zM3nApSvMg",
    "http://youtu.be/0zM3nApSvMg"                  
];
for (var i = 0; i < urlArr.length; i++) {
    alert(urlArr[i].match(re)[2]);
}

http://jsfiddle.net/HfqmE/1/

关于javascript - YouTube 网址 ID 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8388223/

相关文章:

python - 在文本文件中搜索字符串,保存包含列表中项目的行,如果文本文件中不存在该项目,则返回 NA

javascript - JSON解析错误: Unexpected identifier

javascript - 仅显示数组中的一项

javascript - 在 HTML 网站中嵌入第三方内容

jquery - 悬停在 jquery 上的 div 消失了

javascript - 使用 jQuery 使用数组在一个 cookie 中设置/检索多个键/值对

regex - 乐正则表达式 : How to use capturing group inside lookaheads

ruby - 正则表达式匹配组,但组成员除外

javascript - jquery - 转到下一个时更改输入值

javascript - Angular .js : directive object in scope is always undefined