Regex de email: patrones listos para copiar que funcionan de verdad
Tres regex de email listas para copiar (simple, práctica y estricta), cuándo usar cada una y los errores habituales que rechazan direcciones reales.

· 5 min de lectura · Actualizado el
/^[^\s@]+@[^\s@]+\.[^\s@]+$/
atrapa
- ana@site.com
- x+t@site.io
- jo@mail.co.uk
deja libre
- ana@example
- @site.com
- a@@b.io
01Regex de email listas para copiar
| Patrón | Úsalo cuando |
|---|---|
^\S+@\S+$ |
Simple. Una comprobación rápida, por ejemplo para filtrar logs o en un buscador. |
^[^\s@]+@[^\s@]+\.[^\s@]+$ |
Práctica (nuestra elección). Formularios de registro y de contacto: todas las direcciones reales pasan y las erratas habituales no. |
^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$ |
Estricta. Necesitas aceptar exactamente lo que acepta el campo type="email" de un navegador. |
Pruébalas con tus propias direcciones en la Zona de pruebas, o practica con el pack Validadores de formatos. El resto del artículo explica por qué el patrón práctico es la mejor opción por defecto.
Busca “regex email” y encontrarás patrones de todos los tamaños, desde diez caracteres hasta varios miles. Hay quien ha intentado meter el estándar completo del email en una sola expresión regular, y el resultado es famoso por ilegible.
La buena noticia: no necesitas nada de eso. Aquí tienes el patrón que recomendamos, por qué los patrones más estrictos dan más problemas de los que evitan y qué hacer en su lugar. Todos los ejemplos son interactivos, así que edita los patrones y mira qué cambia.
02Por qué no existe una regex de email “perfecta”
El formato de las direcciones de email admite mucho más de lo que la mayoría espera. Todas estas son válidas:
x+newsletter@site.io(una etiqueta con +, que sirve para filtrar el correo)j.doe@mail.co.uk(un subdominio y una terminación de país en dos partes)ana@studio.photography(un dominio de nivel superior largo)josé@exemplo.com.br(letras no inglesas, admitidas por los servidores de correo que gestionan direcciones internacionales)
Y un patrón no puede decirte si una dirección existe. ana@example.com tiene una forma perfecta y aun así puede rebotar. La única comprobación real es enviar un mensaje y pedir a la persona que haga clic en un enlace.
Así que el trabajo de una regex es más pequeño de lo que parece: detectar erratas evidentes antes de enviar ese mensaje.
03El patrón que recomendamos
/^[^\s@]+@[^\s@]+\.[^\s@]+$/Debe coincidir5/5
- ana@example.com
- j.doe@mail.co.uk
- x+tag@site.io
- ana@studio.photography
- josé@exemplo.com.br
No debe4/4
- ana@example
- ana@@example.com
- ana @example.com
- @example.com
Léelo en cuatro partes:
^[^\s@]+uno o más caracteres que no sean espacios en blanco ni@@exactamente una arroba[^\s@]+\.un nombre de dominio y luego un punto literal[^\s@]+$el resto del dominio, hasta el final
Es corto, se lee bien y no rechaza a nadie con una dirección real.
04Error 1: olvidar las anclas
Sin ^ y $, a una regex le basta con encontrar un trozo con forma de email en algún lugar del texto:
05Error 2: ser demasiado estricto
Los patrones de email más comunes en internet se parecen a este. Parece cuidadoso, y deja fuera a gente real:
/^[\w.]+@\w+\.[a-z]{2,4}$/Debe coincidir1/1
- ana@example.com
No debe3/3
- j.doe@mail.co.uk
- x+tag@site.io
- ana@studio.photography
Falla de tres maneras a la vez:
\w+antes del punto solo admite una parte de dominio, así quemail.co.ukfalla.[\w.]no incluye+, así que las direcciones con etiqueta + fallan.[a-z]{2,4}da por hecho que los dominios de nivel superior son cortos. Cientos son más largos:.photography,.software,.museum.
Incluso una versión más cuidadosa, ^[\w.+-]+@[\w-]+(\.[\w-]+)+$, sigue rechazando josé@exemplo.com.br, porque en la mayoría de los motores \w solo cubre letras inglesas. Una dirección real rechazada es un registro perdido. Una errata que se cuela la detecta de todos modos el email de confirmación.
06Lo que usan los navegadores
El <input type="email"> de HTML comprueba las direcciones con su propio patrón, publicado en el estándar HTML:
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/Si usas type="email" en un formulario, el navegador ya hace esta comprobación por ti. Para el front-end, eso suele bastar.
07Una versión de golf de regex
Validar y jugar al golf tienen objetivos distintos. Un validador tiene que ser seguro con cualquier entrada. Un tablero de golf solo tiene que separar estas palabras, así que puedes fijarte en la diferencia más pequeña.
Todos los monstruos de abajo tienen una letra justo antes de la @ y un punto en algún lugar después. Cada inocente rompe una de esas reglas:
Atrapa las cadenas que parecen un email y deja libres las mal formadas.
Objetivos · 0/4 atrapados
- ana@site.comobjetivo
- bo@mail.ioobjetivo
- x.y@z.orgobjetivo
- k@q.devobjetivo
Inocentes · 0 errores
- ana@siteinocente
- @mail.ioinocente
- bo@@z.orginocente
- site.cominocente
- a.b@cinocente
Escribe una regex: el tablero se actualiza mientras escribes.
08Lista de comprobación
- Usa
^[^\s@]+@[^\s@]+\.[^\s@]+$o eltype="email"del navegador. - Ancla siempre con
^y$cuando valides una entrada completa. - No limites los dominios de nivel superior a entre 2 y 4 letras.
- No rechaces
+, puntos de más en el dominio ni letras no inglesas. - Envía un email de confirmación. Es la única prueba de que la dirección funciona.
09Sigue practicando
- La guía tiene una sección de patrones habituales con ejemplos interactivos.
- Prueba la caza de hoy.