2

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

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

这是我的代码:

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

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

alert($results);

  });

我将其作为输出-

?v=bxp8NWvIeSo,bxp8NWvIeSo

当我只想

bxp8NWvIeSo

4

2 回答 2

6

如果你不是被迫使用匹配,你可以使用“拆分”:

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);
于 2010-01-29T19:08:23.457 回答
2

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

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

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

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

于 2010-01-29T18:18:44.870 回答