我需要一个可以从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位身份识别算法不会很快改变,因此11个字符的计数总是可以安全地假设。我想知道解决这个问题的最佳方法是什么,而不是链接6或7个不同的if命令?
香农
答案 0 :(得分:1)
请参阅JavaScript REGEX: How do I get the YouTube video id from a URL?
假设url是一个变量,将youtube视频网址保存为字符串:
url.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/)[1]
答案 1 :(得分:1)
这有点难看,但它抓住了以上所有的例子:
function videoID(url) {
return url.replace(/\\/g,'/').replace( /.*\//, '').replace(/#.*/, '').replace(/(.*\?v=|\?version=.*)/, '');
}
答案 2 :(得分:0)
您可以尝试使用FaceOfJock提供的链接中使用的正则表达式,然后使用JavaScript RegExp对象应用它: