【发布时间】:2011-10-17 17:51:45
【问题描述】:
我已经看过了很多方法来从 youtube 的 URL 中解析视频 ID,但是,它们都没有匹配 YouTube url 可能包含的所有各种格式。我试过搞乱使用前几篇文章中介绍的正则表达式,但似乎没有任何效果。
我发现最接近所有各种 URL 格式的帖子是这个:How do I find all YouTube video ids in a string using a regex?
但是,这不适用于: http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/FJUvudQsKCM
我正在使用 Javascript 进行此操作。有人可以帮忙吗?!
提前感谢。
我正在使用的当前 URL 格式和脚本:
var url = "http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/FJUvudQsKCM";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://youtu.be/NLqAF9hrVbY";
//var url = "http://www.youtube.com/embed/NLqAF9hrVbY";
//var url = "https://www.youtube.com/embed/NLqAF9hrVbY";
//var url = "http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US";
//var url = "http://www.youtube.com/watch?v=NLqAF9hrVbY";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://www.youtube.com/watch?v=JYArUl0TzhA&feature=featured";
var videoID = url.match(/(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/user\/\S+|\/ytscreeningroom\?v=))([\w\-]{10,12})\b/)[1];
alert(videoID);
【问题讨论】:
-
你可以试试get-video-id。它将从任何已知的 Youtube url 字符串(或嵌入字符串)中获取 id。
-
在这种情况下,我将使用另一个实用程序来读取 url 参数,并跟踪 v,并为了理智删除所有 url 参数,然后测试:([\w\d_\-]+ )$/ gim regexr.com/566ho
标签: javascript regex video youtube