Удалите URL, чтобы получить идентификатор YouTube - PullRequest
2 голосов
/ 01 августа 2011

У меня есть:

var post = $('.post');
post.find('.video embed').each(function(){
    v = $(this);
    youtubeID = v.attr('src').replace(/^.*youtube.com.*(?:\/|v=)(\w+)\//g,"");
    console.log(youtubeID);
})

Вот пример URL-адреса, взятого из кода вставки

http://www.youtube.com/v/_eeZnLX_XBM&rel=0&egm=0&showinfo=0&fs=1

Он удаляет все до /v/, но неамперсанд и все, что после этого.

Я хочу только _eeZnLX_XBM.

Ответы [ 4 ]

2 голосов
/ 01 августа 2011

Попробуйте с:

youtubeID = v.attr('src').match(/youtube\.com.*?v[\/=](\w+)/)[1];
1 голос
/ 01 августа 2011
var url = v.attr('src');
youtubeID = url.substring(url.lastIndexOf('/') + 1 ,url.indexOf('&'));
1 голос
/ 01 августа 2011

так что просто добавьте еще одну замену для остальных:

var post = $('.post');
post.find('.video embed').each(function(){
    v = $(this);
    youtubeID = v.attr('src').replace(/^.*youtube.com.*(?:\/|v=)(\w+)\//g,"").replace(/&.*/g, "");
    console.log(youtubeID);
})
0 голосов
/ 01 августа 2011

Попробуйте это:

$('.post').find('.video embed').each(function(){
    youtubeID = $(this).attr('src').match(/\/([^&/]+)&/)[1];

    console.log(youtubeID);
})

визуализация регулярного выражения

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