Регулярное выражение для идентификатора YouTube

Я просмотрел все и видел много способов разобрать идентификатор видео из URL-адреса YouTube, однако ни один из них не соответствовал всем различным форматам YouTube URL может быть внутри. Я пробовал возиться с регулярным выражением, представленным в предыдущих сообщениях, но, похоже, ничего не помогло.

Ближайшее сообщение, которое я обнаружил, охватывающее все различные форматы URL, было следующее: Как мне найти все идентификаторы видео YouTube в строке с использованием регулярного выражения?

Однако это не работает для: http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/FJUvudQsKCM

Я делаю это на Javascript. Может кто-нибудь помочь?!

Заранее спасибо.

Текущие форматы URL-адресов и скрипты, которые я использую:

var url = "http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/FJUvudQsKCM";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://youtu.be/NLqAF9hrVbY";
//var url = "http://www.youtube.com/embed/NLqAF9hrVbY";
//var url = "https://www.youtube.com/embed/NLqAF9hrVbY";
//var url = "http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US";
//var url = "http://www.youtube.com/watch?v=NLqAF9hrVbY";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://www.youtube.com/watch?v=JYArUl0TzhA&feature=featured";

var videoID = url.match(/(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/user\/\S+|\/ytscreeningroom\?v=))([\w\-]{10,12})\b/)[1];
alert(videoID);

19
задан Community 23 May 2017 в 12:10
поделиться