【问题标题】:Grab the youtube Video ID with Jquery & .match()使用 Jquery 和 .match() 获取 youtube 视频 ID
【发布时间】:2010-01-29 18:05:08
【问题描述】:

只需要一点点推动,因为我几乎可以正常工作了。

我想为 jquery 提供一个 URL 并让它剥离除视频 URL 之外的所有内容。

这是我的代码:

 var url = 'http://www.youtube.com/watch?v=bxp8NWvIeSo';   

$results = url.match("[\\?&]v=([^&#]*)");

alert($results);

  });

我将其作为输出 -

?v=bxp8NWvIeSo,bxp8NWvIeSo

当我想要的时候

bxp8NWvIeSo

【问题讨论】:

  • 它给你一个项目列表,一个简单的方法就是只获取'='之后的所有内容

标签: javascript jquery youtube match


【解决方案1】:

如果不强制使用match,可以使用“split”:

var getList = function(url, gkey){

        var returned = null;

        if (url.indexOf("?") != -1){

          var list = url.split("?")[1].split("&"),
                  gets = [];

          for (var ind in list){
            var kv = list[ind].split("=");
            if (kv.length>0)
                gets[kv[0]] = kv[1];
        }

        returned = gets;

        if (typeof gkey != "undefined")
            if (typeof gets[gkey] != "undefined")
                returned = gets[gkey];

        }

        return returned;

};

var url = 'http://www.youtube.com/watch?v=bxp8NWvIeSo';
$result = getList(url, "v");
alert($result);

【讨论】:

  • 这很好用。甚至变成了一个易于使用的功能:)
【解决方案2】:

首先,删除结果前面的 $... 我认为这是一个错字。 接下来,替换

$results = url.match("[\\?&]v=([^&#]*)");

与

results = url.match("[\?&]v=([^&#]*)")[1];

match() 如果匹配成功,将返回一个数组。您目前正在获取整个数组。您想要的是数组的第二个元素 (match()[1]),它位于捕获括号内。

【讨论】:

  • 正确答案只是美元符号在 JavaScript 变量标识符中是完全可以接受的,而且您实际上根本不需要 any 正则表达式中的反斜杠。
猜你喜欢
  • 2011-07-22
  • 2013-07-14
  • 1970-01-01
  • 2016-04-22
  • 2020-11-05
  • 2011-11-05
  • 2016-09-28
  • 2012-04-15
  • 2011-03-24
相关资源
最近更新 更多