1

我需要一个可以从 Vimeo 和 YouTube 网址获取视频 ID 的函数。

我做了一些挖掘并找到了这些网址:

https://vimeo.com/30466080 
https://vimeo.com/30466080#t=0 
http://www.youtube.com/watch?feature=player_detailpage&v=My2FRPA3Gf8 http://www.youtube.com/watch?v=My2FRPA3Gf8 
//www.youtube.com/v/My2FRPA3Gf8?version=3&hl=en_GB 
//www.youtube-nocookie.com/v/My2FRPA3Gf8?version=3&hl=en_GB //www.youtube.com/embed/My2FRPA3Gf8

Vimeo,真的只有一种,而且总是在同一个位置。

然而,YouTube 可以肯定地说,他们的 64 位 id 算法不会很快改变,所以 11 个字符的计数始终是安全的。

我想知道解决这个问题的最佳方法是什么,而不是链接 6 或 7 个不同的 if 命令?

香农

4

3 回答 3

1

请参阅JavaScript 正则表达式:如何从 URL 获取 YouTube 视频 ID?

假设 url 是一个将 youtube 视频 url 保存为字符串的变量:

url.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/)[1]
于 2013-09-19T01:07:13.760 回答
1

这有点难看,但它涵盖了上述所有示例:

  function videoID(url) {
    return url.replace(/\\/g,'/').replace( /.*\//, '').replace(/#.*/, '').replace(/(.*\?v=|\?version=.*)/, '');
  }
于 2013-09-19T01:24:59.620 回答
0

您可以尝试使用 FaceOfJock 提供的链接中使用的正则表达式,然后使用 JavaScript RegExp 对象应用它:

http://www.w3schools.com/jsref/jsref_obj_regexp.asp

于 2013-09-19T00:27:27.933 回答