const regex = new RegExp('^(?:https?:)?(?:\\/\\/)?(?:(?:www\\.|m\\.)?youtube(?:-nocookie)?\\.com\\/(?:v\\/|e\\/|embed\\/|w\\/|(?:watch\\?v=|(?:(?:\\?|watch\\?)(?:[\\w]+=[\\w]+&?)+)v=)?|shorts\\/)|youtu\\.be\\/(?:watch\\?v=)?)([\\w-]{11})(?=[^\\w-]|$)(?![?=&+%\\w.-]*(?:[\\'\\"][^<>]*>|<\\/a>))[?=&+%\\w.-]*$', 'gim')
const str = `thisdoesnotmatch
seulement11
l_la5XiQJdk
Qa5McwO3qY0
https://www.youtube.com/w/0tI4nOURzKI
https://www.youtube.com/shorts/Qa5McwO3qY0
youtube.com/watch?v=vpiMAaPTze8
//youtu.be/DFYRQ_zQ-gk
youtu.be/DFYRQ_zQ-gk
http://www.youtube.com/watch?v=vpiMAaPTze8
http://youtu.be/l_la5XiQJdk
http://youtu.be/NLqAF9hrVbY
https://youtu.be/qT47KF5pvfw
https://youtu.be/zImHyTyYhM8?t=4s
https://youtu.be/DFYRQ_zQ-gk?t=120
https://youtu.be/DFYRQ_zQ-gk
http://youtu.be/DFYRQ_zQ-gk
//youtu.be/DFYRQ_zQ-gk
http://www.youtube-nocookie.com/watch?v=NLqAF9hrVbY
https://www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US
http://www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US
//www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US
www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US
youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US
http://www.youtube.com/v/dQw4w9WgXcQ
http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US
http://www.youtube.com/embed/NLqAF9hrVbY
https://www.youtube.com/embed/NLqAF9hrVbY
http://www.youtube.com/embed/dQw4w9WgXcQ
https://www.youtube.com/embed/DFYRQ_zQ-gk?autoplay=1
https://www.youtube.com/embed/DFYRQ_zQ-gk
http://www.youtube.com/embed/DFYRQ_zQ-gk
//www.youtube.com/embed/DFYRQ_zQ-gk
www.youtube.com/embed/DFYRQ_zQ-gk
https://youtube.com/embed/DFYRQ_zQ-gk
http://youtube.com/embed/DFYRQ_zQ-gk
//youtube.com/embed/DFYRQ_zQ-gk
youtube.com/embed/DFYRQ_zQ-gk
http://www.youtube.com/e/dQw4w9WgXcQ
http://www.youtube.com/watch?v=NLqAF9hrVbY
http://www.youtube.com/watch?v=spDj54kf-vY&feature=g-vrec
http://www.youtube.com/watch?v=spDj54kf-vY&feature=youtu.be
https://www.youtube.com/watch?v=MRl7cxSOXdU&feature=youtu.be
https://www.youtube.com/watch?v=q07SQFmL4rM
https://www.youtube.com/watch?v=q07SQFmL4yM
https://www.youtube.com/watch?v=zImHyTyYhM8&t=4s
http://www.youtube.com/watch?v=dQw4w9WgXcQ
https://www.youtube.com/watch?v=DFYRQ_zQ-gk&feature=featured
https://www.youtube.com/watch?v=DFYRQ_zQ-gk
http://www.youtube.com/watch?v=DFYRQ_zQ-gk
//www.youtube.com/watch?v=DFYRQ_zQ-gk
www.youtube.com/watch?v=DFYRQ_zQ-gk
http://www.youtube.com/watch?v=DFYRQ_zQ-gk
//www.youtube.com/watch?v=DFYRQ_zQ-gk
www.youtube.com/watch?v=DFYRQ_zQ-gk
https://youtube.com/watch?v=DFYRQ_zQ-gk
http://youtube.com/watch?v=DFYRQ_zQ-gk
//youtube.com/watch?v=DFYRQ_zQ-gk
youtube.com/watch?v=DFYRQ_zQ-gk
https://www.youtube.com/watch?time_continue=4&v=zImHyTyYhM8
https://www.youtube.com/watch?v=zImHyTyYhM8
This working:
https://www.youtube.com/watch?v=zImHyTyYhM8&time_continue=4&
http://www.youtube.com/watch?feature=player_embedded&v=dQw4w9WgXcQ
http://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=player_embedded
http://www.youtube.com/?feature=player_embedded&v=dQw4w9WgXcQ
http://www.youtube.com/?aa=aa&bbb=bbb&cccc=cccc&v=dQw4w9WgXcQ
http://www.youtube.com/?aa=aa&bbb=bbb&v=dQw4w9WgXcQ&cccc=cccc
http://www.youtube.com/?aa=aa&v=dQw4w9WgXcQ&bbb=bbb&cccc=cccc
https://m.youtube.com/watch?v=DFYRQ_zQ-gk
http://m.youtube.com/watch?v=DFYRQ_zQ-gk
//m.youtube.com/watch?v=DFYRQ_zQ-gk
m.youtube.com/watch?v=DFYRQ_zQ-gk
------------------------------- All wrong urls -------------------------------------------------
http://www.youtube.com/user/username#p/u/11/dQw4w9WgXcQ
http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/dQw4w9WgXcQ
http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo
http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I
http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/2/PPS-8DMrAn4
http://gdata.youtube.com/feeds/api/videos/NLqAF9hrVbY
https://www.youtube.com/HamdiKickProduction?v=DFYRQ_zQ-gk
http://www.youtube.com/?v=dQw4w9WgXcQ
http://www.youtube.com/&v=dQw4w9WgXcQ
www.youtube.com/watch/ccc/ddd/DFYRQ_zQ-gk&feature=featured
//www.youtube.com/vk/DFYRQ_zQwww
//www.youtube.com/sdasdsadsd/DFYRQ_zQwww/fdfsdf/sdfsdfsdf
www.youtube.com/awssssssss
youtu.be/e/e/e/e/e/DFYRQ_zQwww/d/d/d/d/a/sfd/asd/as/DFYRQ_zQwww
https://www.youtube.com/v=0tI4nOURzKI
www.youtube.com/v=/DFYRQ_zQwww
www.youtube.com/vDFYRQ_zQwww
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions