【发布时间】:2015-05-07 18:46:39
【问题描述】:
我目前有一个函数正在验证一个 youtube url,并从中获取视频 ID,然后返回一个嵌入 url。这对于像“https://www.youtube.com/watch?v=12345678901”这样的 youtube 网址非常有用,但是当网址有播放列表时,我也需要播放列表才能正常工作。需要对正则表达式进行哪些更改才能返回播放列表(如果存在)?
播放列表网址示例: https://www.youtube.com/watch?v=12345678901&list=123456789_1234567890123456789-1234
function embedVideo(url) {
var youtube = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/,
yt = url.match(yt);
if (yt) {
return "//www.youtube.com/embed/" + yt[1];
}
return false;
}
【问题讨论】:
-
你的正则表达式有效regex101.com/r/pW3cT7/2
-
是的,但如果它也存在,我需要它来添加播放列表选项。 (&list=...)
-
你的意思是regex101.com/r/pW3cT7/3?
-
似乎正确。如果您将它在函数中的工作方式作为答案发布,我将对其进行测试并标记为正确。
-
实际上,我测试过它并且它有效。请将其添加为答案,我会将其标记为正确。
标签: javascript regex