Как получить идентификатор видео 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.