如何从网址获取YouTube视频ID?

我想通过JavaScript从YouTube的URL中获取v=id (没有jQuery,纯JavaScript)。

YouTube网址格式示例

http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW

http://www.youtube.com/watch?v=u8nQa1cJyX8

或者是其他任何包含网址中的视频ID的YouTube格式。

来自这些格式的结果

u8nQa1cJyX8


你不需要为此使用正则表达式。

var video_id = window.location.search.split('v=')[1];
var ampersandPosition = video_id.indexOf('&');
if(ampersandPosition != -1) {
  video_id = video_id.substring(0, ampersandPosition);
}

我对“jeffreypriebe”提供的正则表达式进行了增强,因为他需要一种YouTube网址,即通过频道查看视频的网址。

不,但这是我武装的功能。

<script type="text/javascript">
function youtube_parser(url){
    var regExp = /^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/;
    var match = url.match(regExp);
    return (match&&match[7].length==11)? match[7] : false;
}
</script>

这些是支持的URL类型

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

可以在[http://web.archive.org/web/20160926134334/] http://lasnv.net/foro/839/Javascript_parsear_URL_de_YouTube找到


我简化了Lasnv的答案。

它还修复了WebDeb描述的错误。

这里是:

var regExp = /^.*(youtu.be/|v/|u/w/|embed/|watch?v=|&v=)([^#&?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
  return match[2];
} else {
  //error
}

这里是一个regexer链接:http://regexr.com/3dnqv

链接地址: http://www.djcxy.com/p/4925.html

上一篇: How do I get the YouTube video ID from a URL?

下一篇: PHP and Enumerations