Вы можете использовать это регулярное выражение
.*
совпадение и потреблять все до [A-z0-9]+
, затем сопоставлять и захватывать любое число и символ между Az .*
, а затем использовать оставшуюся часть ввода
const ytUrl = '//www.youtube.com/embed/DmYK479EpQc?vq=hd720&rel=0';
const regex = /(.*)(d\/)([A-z0-9]+)(\?)(.*)/gm;
const position = '$3';
let result = ytUrl.replace(regex, position);
console.log('YouTube ID: ', result);
Это регулярное выражение просто разбивает строку на разные разделы, а идентификатор YouTube находится на 3-й позиции.
Другое решение использует split
.Этот метод разбивает строку на массив подстрок.
const ytUrl = '//www.youtube.com/embed/DmYK479EpQc?vq=hd720&rel=0';
let result = ytUrl.split('/').pop().split('?').shift()
console.log('YouTube ID: ', result);
В этом примере мы разделяем URL, используя /
в качестве разделителя.Затем мы взяли последний элемент массива методом pop
.и, наконец, мы снова разделяем, используя ?
в качестве разделителя, и мы берем первый элемент массива с помощью метода shift
.