Cómo funciona el patrón
| Parte | Significado |
|---|---|
(?:https?:\/\/)?(?:www\.|m\.)? | Esquema opcional y subdominio www o m |
youtube\.com\/(?:watch\?v=|embed\/|shorts\/) | URLs de watch, embed y Shorts |
youtu\.be\/ | O los enlaces cortos youtu.be |
([\w-]{11}) | Grupo 1: el ID de video de 11 caracteres |
(?:[?&#].*)? | Parámetros extra opcionales como &t=42 o &list=… |
Ejemplos de código
JavaScript
const re = /^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:https?://)?(?:www\.|m\.)?(?:youtube\.com/(?:watch\?v=|embed/|shorts/)|youtu\.be/)([\w-]{11})(?:[?&#].*)?', value))PHP
preg_match('/^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/', $value) === 1;
Notas y limitaciones
El grupo 1 contiene el ID del video, que puedes usar en https://www.youtube.com/embed/ID o en la URL de la miniatura https://i.ytimg.com/vi/ID/hqdefault.jpg. La URL de watch debe tener v= como primer parámetro.
Probador de expresiones regulares
Escribe un patrón y observa cómo se resaltan las coincidencias en tiempo real en tu texto de prueba.