我目前有一个功能可以验证 youtube 网址,并从中获取视频 ID,然后返回一个嵌入网址。这对于像“https://www.youtube.com/watch?v=12345678901”这样的 youtube url 非常有用,但是当 url 有播放列表时,我也需要播放列表才能工作。需要对正则表达式进行哪些更改才能返回播放列表(如果存在)?
示例播放列表网址: 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;
}
最佳答案
也只捕获 &list=
之后的字符。
^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((?:\w|-){11})(?:&list=(\S+))?$
关于javascript - 用于嵌入或不包含播放列表的正则表达式 youtube url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28894116/