Match возвращает массив.Похоже, что вы хотите regexyoutubeurl[2]
.
Вы запрашиваете $("span.yturl")
внутри своей функции итератора.Таким образом, вы действуете на каждом отрезке 7 раз вместо того, чтобы действовать на каждом из 7 отрезков один раз.Вместо этого используйте $(this)
.
Также используйте .text()
вместо .html()
, чтобы ваш &
не стал &
.
$("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/