Javascript 从字符串中删除ID

Javascript 从字符串中删除ID,javascript,jquery,string,split,slice,Javascript,Jquery,String,Split,Slice,我需要一个函数,可以从Vimeo和YouTube URL获取视频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/M

我需要一个函数,可以从Vimeo和YouTube URL获取视频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
维梅奥,真的只有一种,而且总是处于相同的位置

然而,YouTube可以肯定地说,他们的64位id算法在短期内不会改变,所以11个字符的计数可以一直假设是安全的

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


Shannon

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

请参见

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

url.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/)[1]

这有点难看,但它抓住了上面所有的例子:

  function videoID(url) {
    return url.replace(/\\/g,'/').replace( /.*\//, '').replace(/#.*/, '').replace(/(.*\?v=|\?version=.*)/, '');
  }

看到这一点,我正在使用javascript,但不懂php:(这个问题的答案与正则表达式有关,可以很容易地适应javascript。示例:
/vimeo.com\/(\d+)/
那么我做错了什么,我已经从该页面复制了正则表达式,并转换为我认为正确的格式…但它不起作用..谢谢你的链接,你帮助我缩小了搜索范围,以下是我的想法: