Hay un chiste en la comunidad regex: “Escribe una regex de validación de email y darás pesadillas a los ingenieros de QA”. Las regex de email online son o demasiado cortas y se saltan la mitad de los casos, o tan largas que parecen ransomware. Este artículo se salta los juegos y te da 7 patrones probados en producción — sin buscar rigor académico, sino usabilidad práctica. Combínalos con el probador de regex de Piick y podrás observar y ajustar sobre la marcha.
Por qué no existe una “regex universal”
La definición del formato de email del estándar RFC 5322 se extiende cientos de líneas; un email legal puede verse como "user+tag"@sub.example.museum. Intentar cubrir cada caso legal con una sola regex significa escribir un “monstruo regex” de 200 caracteres que no te atreverás a tocar seis meses después.
Principio práctico: usa la versión simplificada “99% de aciertos” y deja que el backend envíe un email de verificación para capturar el 1% restante. No confíes en la regex del frontend para validar emails — confía en que el servidor realmente envíe el correo.
7 mejores regex para escenarios de alta frecuencia
Estos 7 patrones vienen todos de código en producción, cubriendo las necesidades más comunes:
- Email
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}— versión simplificada, el 99% de los emails pasa - URL
https?:\/\/[^\s<>"']+— desde el inicio http/https hasta un espacio en blanco o comillas angulares - Teléfono (internacional)
\+?[1-9]\d{1,14}— formato E.164, máximo 15 dígitos - Dirección IPv4
\b(?:25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)){3}\b— estricto 0-255 segmento a segmento - Fecha ISO
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])— año-mes-día con comprobaciones de rango de mes y día - Color hexadecimal
#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\b— acepta#fffy#FFFFFF - Slug de URL
[a-z0-9]+(?:-[a-z0-9]+)*— letras/dígitos con guiones, el formato común de URL de artículos
El desplegable Common Patterns en el probador de regex de Piick ya tiene estos 7 incorporados — pega y usa, no necesitas escribirlos tú mismo.
Pruebas y ajustes en tiempo real con Piick
Copiar la regex de alguien tiene una trampa: no sabes qué significa cada parte. El panel Explain de Piick desglosa la regex token por token, diciéndote qué hace cada paréntesis y cuantificador:
- Los metacaracteres (
\d,\w,\b) se etiquetan como ancla / clase - Los cuantificadores (
*,+,{2,5}) se etiquetan como cuantificador - Los grupos y referencias inversas se etiquetan como grupo / backref
Flujo de depuración: pega la regex → revisa el desglose del Explain → pega texto de prueba → observa el resaltado de coincidencias → edita una línea → ve el efecto inmediatamente. No hace falta recargar la página; edita y ejecuta.
Consejos para mantener tu propia biblioteca de patrones
3 hábitos que hacen las regex más fáciles de mantener:
- Grupos de captura con nombre en lugar de numerados:
(?<year>\d{4})se lee mejor que(\d{4})— cuando extraigas datos después, no contarás mal los paréntesis - Divide regex complejas en varias líneas con comentarios: Usa
new RegExp(\…`)` junto con variables de comentario para que puedas entenderlo seis meses después - Centralízalas en un archivo
lib/regex.ts— no esparzasnew RegExp(...)por todos lados; un cambio no debería significar buscar en 50 archivos
Yendo más lejos: almacena las regex que tu proyecto usa habitualmente como un objeto, con la clave siendo el nombre y el valor siendo {pattern, flags, sample}. Cada nuevo miembro del equipo puede usarlas directamente sin copiar desde cero. Esta es exactamente la idea detrás de los 7 patrones comunes incorporados en el probador de regex de Piick — cuanto más grande sea la biblioteca de patrones, menos reinventarás la rueda.
Abre ahora el probador de regex de Piick, haz clic en el desplegable Common Patterns, elige email y pega algo de texto de prueba para ver la coincidencia en acción.