【问题标题】:How to get youku video id from url by regex?如何通过正则表达式从 url 获取优酷视频 ID?
【发布时间】:2014-11-05 15:06:52
【问题描述】:

我需要通过正则表达式从url获取优酷视频id,例如:

http://v.youku.com/v_show/id_XNTg3OTc3MzY4.html

我只需要XNTg3OTc3MzY4 来保存一个变量。

下面的函数怎么写

var youkuEmbed = "[[*supplier-video]]";

var youkuUrl = youkuEmbed.match(/http://v\.youku\.com/v_show/id_(\w+)\.html/);

我试过了,但是没有用。

谢谢!

【问题讨论】:

  • 'http://v.youku.com/v_show/id_XNTg3OTc3MzY4.html'.match(/[^.\/_]+(?=\.\w+$)/g);

标签: javascript jquery regex youku


【解决方案1】:

您可以像这样使用简单的正则表达式:

id_(\w+)

Working demo

这个想法是匹配_id 并捕获所有字母数字字符串。

MATCH 1
1.  [29-42] `XNTg3OTc3MzY4`

如果您进入代码生成器部分,您可以获得代码。但是,您可以使用以下内容:

var myString = 'http://v.youku.com/v_show/id_XNTg3OTc3MzY4.html';
var myRegexp = /id_(\w+)/;
var match = myRegexp.exec(myString);
alert(match[1]);  
//Shows: XNTg3OTc3MzY4

【讨论】:

    【解决方案2】:

    你可以使用这个正则表达式:

    http://v\.youku\.com/v_show/id_(\w+)\.html
    

    你的对手在第一个捕获组中。

    这是regex demo

    【讨论】:

      【解决方案3】:

      id 总是跟在id_ 后面,你可以拆分字符串。

      'http://v.youku.com/v_show/id_XNTg3OTc3MzY4.html'.split(/.*id_|\./)[1]
      //=> 'XNTg3OTc3MzY4'
      

      对于这个特定的字符串,你可以这样做。

      'http://youku.com/id_XNTg30Tc3MzY4.html'.split(/id_|\./)[2]
      //=> 'XNTg3OTc3MzY4'
      

      【讨论】:

        【解决方案4】:

        看起来您需要转义所有斜杠,因为这是正则表达式本身的分隔符:

        var youkuUrl = youkuEmbed.match(/http:\/\/v\.youku\.com\/v_show\/id_(\w+)\.html/);

        然后使用第一个捕获组,如 Unihedron 所述。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-08
          • 1970-01-01
          • 2014-07-25
          • 2012-03-22
          • 2015-11-24
          • 2012-05-11
          • 2013-08-28
          • 1970-01-01
          相关资源
          最近更新 更多