javascript - YouTube ID 的正则表达式

标签 javascript regex video youtube

<分区>

我查看了所有内容,看到了很多从 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);

最佳答案

这是一个重复的问题,之前已经回答过了。

我想你会发现这里的正则表达式也适用。

parse youtube video id using preg_match

编辑: 我注意到它不适用于列表顶部的 sandalsResort URL,因此您可以将正则表达式修改为以下内容(转换为在 JS 中使用)

var myregexp = /(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/gi;

我所做的就是将 user 替换为 [^/]+

ID 仍然在反向引用 1 中捕获。

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

相关文章:

javascript - 我如何修改 ionic 应用程序中下载的 html?

Python 正则表达式子函数

video - Directshow,捕获两个USB网络摄像头,无法同时启动

javascript - 如何使用表从动态构建的表单中捕获

javascript - 尝试构造 HERE map HitArea 对象时发生异常

javascript - react Gatsby : adding css class dynamically not working in prod build

javascript - 使用 <canvas> 在逐帧视频中保持一致的 FPS

Python重新模块findall并打印整个匹配子字符串

java - 将显示名称字符串从 "First M. Last"更改为 "Last, First M."?

html - 以HTML5 <video>标签链接到YouTube视频