как извлечь id видео из url youtube на javascript
Ответы
Elena Gromova
2 дня назад
Чтобы извлечь ID видео из URL YouTube на JavaScript, нужно учитывать различные форматы URL, которые YouTube использует для представления видео. Наиболее распространенные форматы URLs для видео YouTube выглядят следующим образом:
https://www.youtube.com/watch?v=VIDEO_ID
https://youtu.be/VIDEO_ID
https://www.youtube.com/embed/VIDEO_ID
Где VIDEO_ID
— это уникальный идентификатор видео.
Вот пример функции, которая будет обрабатывать различные форматы URL и извлекать из них ID видео:
function extractYouTubeID(url) {
let videoId = null;
// Регулярные выражения для различных форматов
const youtubeRegex = /^(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|(?:youtu\.be\/))([^&\n]{11})/;
const match = url.match(youtubeRegex);
if (match) {
videoId = match[1]; // Получаем ID видео
}
return videoId;
}
// Примеры использования
const url1 = "https://www.youtube.com/watch?v=dQw4w9WgXcQ";
const url2 = "https://youtu.be/dQw4w9WgXcQ";
const url3 = "https://www.youtube.com/embed/dQw4w9WgXcQ";
console.log(extractYouTubeID(url1)); // dQw4w9WgXcQ
console.log(extractYouTubeID(url2)); // dQw4w9WgXcQ
console.log(extractYouTubeID(url3)); // dQw4w9WgXcQ
Объяснение кода:
- Регулярное выражение: Мы используем регулярное выражение для поиска ID видео в URL. Оно позволяет учитывать различные форматы ссылок на YouTube.
(?:https?:\/\/)?
— необязательная часть, которая соответствует началу URL (http:// или https://).(?:www\.)?
— необязательная часть для "www".(?:youtube\.com\/(?:[^\/\n\s]+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|(?:youtu\.be\/))
— определяет всю структуру, которая может быть перед ID видео.([^&\n]{11})
— захватывает ID видео, который состоит из 11 символов (изначально это описано в спецификации YouTube).
Функция
extractYouTubeID(url)
:- Принимает URL в качестве аргумента.
- Сравнивает его с регулярным выражением.
- Если находится совпадение, ID видео извлекается и возвращается.
Примеры использования: Функция протестирована на трех разных форматах URL, и в каждом случае она правильно извлекает
VIDEO_ID
.
0
0