Patrones1 caza jugable incluida

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.

Logo de Regex Hunter

· 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

Coincidencias9/9 como se esperaba
/^[^\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
Pruébalo en la Zona de pruebas
Algo sin espacios ni @, luego una sola @, luego un dominio con al menos un punto. Todas las direcciones reales pasan, y las erratas habituales no.

Léelo en cuatro partes:

  1. ^[^\s@]+ uno o más caracteres que no sean espacios en blanco ni @
  2. @ exactamente una arroba
  3. [^\s@]+\. un nombre de dominio y luego un punto literal
  4. [^\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:

Coincidencias2/2 como se esperaba
/\S+@\S+/
  • ana@example.com
  • not an email: a@b c
Pruébalo en la Zona de pruebas
La última línea pasa porque contiene “a@b”. Con ^ y $, toda la entrada tiene que ser la dirección.

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:

Coincidencias4/4 como se esperaba
/^[\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
Pruébalo en la Zona de pruebas
Todas las líneas son direcciones válidas, y este patrón solo acepta la primera.

Falla de tres maneras a la vez:

  • \w+ antes del punto solo admite una parte de dominio, así que mail.co.uk falla.
  • [\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:

Patrón133 car.
/^[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])?)*$/
Pruébalo en la Zona de pruebas
El patrón del estándar HTML. Admite user@localhost (sin punto) y rechaza letras no inglesas antes de la @.

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:

Caza jugablepar 8

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.

Pruébalo en la Zona de pruebas
¿Te gustó? Cada día llega una nueva.Jugar la caza de hoy

08Lista de comprobación

  • Usa ^[^\s@]+@[^\s@]+\.[^\s@]+$ o el type="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.