Как получить идентификатор видео Youku из URL по регулярному выражению?

Мне нужно получить идентификатор видео youku из URL через регулярное выражение, например:

http://v.youku.com/v_show/id_XNTg3OTc3MzY4.html

Мне нужно только XNTg3OTc3MzY4 хранить в переменной.

Как я могу написать это в функции ниже

var youkuEmbed = "[[*supplier-video]]";

var youkuUrl = youkuEmbed.match(/http://v\.youku\.com/v_show/id_(\w+)\.html/);

Я попробовал это, но это не сработало.

Спасибо!

4 ответа

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

id_(\w+)

Рабочая демонстрация

Идея состоит в том, чтобы соответствовать _id и захватить все буквенно-цифровые строки.

MATCH 1
1.  [29-42] `XNTg3OTc3MzY4`

Если вы перейдете в раздел Генератор кода, вы можете получить код. Тем не менее, вы можете использовать что-то вроде этого:

var myString = 'http://v.youku.com/v_show/id_XNTg3OTc3MzY4.html';
var myRegexp = /id_(\w+)/;
var match = myRegexp.exec(myString);
alert(match[1]);  
//Shows: XNTg3OTc3MzY4

Идентификатор всегда следует id_Вы могли бы разделить строку.

'http://v.youku.com/v_show/id_XNTg3OTc3MzY4.html'.split(/.*id_|\./)[1]
//=> 'XNTg3OTc3MzY4'

Для этой конкретной строки вы можете просто сделать.

'http://youku.com/id_XNTg30Tc3MzY4.html'.split(/id_|\./)[2]
//=> 'XNTg3OTc3MzY4'

Вы можете использовать это регулярное выражение:

http://v\.youku\.com/v_show/id_(\w+)\.html

Ваш матч находится в первой группе захвата.

Вот демонстрация регулярных выражений.

Похоже, вам нужно избежать всех слэшей, потому что это разделитель для самого регулярного выражения:

var youkuUrl = youkuEmbed.match(/http:\/\/v\.youku\.com\/v_show\/id_(\w+)\.html/);

Затем используйте первую группу захвата, как сказал Unihedron.

Другие вопросы по тегам