如何从 URL 获取 YouTube 视频 ID?

新手上路,请多包涵

我想使用 JavaScript(没有 jQuery,纯 JavaScript)从 YouTube 的 URL 获取 v=id

YouTube URL 格式示例

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

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

或在 URL 中包含视频 ID 的任何其他 YouTube 格式。

这些格式的结果

u8nQa1cJyX8

原文由 Adam Halasz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

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

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

原文由 Jacob Relkin 发布,翻译遵循 CC BY-SA 2.5 许可协议

我对“jeffreypriebe”提供的 Regex 进行了增强,因为他需要一种 YouTube URL 是视频在通过频道查看时的 URL。

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

 <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 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题