Возьмите идентификатор видео YouTube с Jquery & .match () - PullRequest
2 голосов
/ 29 января 2010

Просто нужно немного подтолкнуть, так как у меня это почти работает.

Я хочу передать jquery URL-адрес и удалить его, кроме URL видео.

Вот мой код:

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

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

alert($results);

  });

Я получаю это как вывод -

? V = bxp8NWvIeSo, bxp8NWvIeSo

Когда я только хочу

bxp8NWvIeSo

Ответы [ 2 ]

6 голосов
/ 29 января 2010

Если вы не обязаны использовать совпадение, вы можете использовать «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 голосов
/ 29 января 2010

Сначала удалите $ перед результатами ... Я предполагаю, что это была опечатка. Далее замените

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

с

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

match () вернет массив в случае успешного совпадения. Вы в настоящее время получаете весь массив. То, что вы хотите, это второй элемент массива (match()[1]), который находится внутри ваших захватных скобок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...