Patron Regex de Correo
El patrón de arriba coincide con la gran mayoría de las direcciones de correo del mundo real. Requiere una parte local no vacia usando caracteres alfanumericos y ._%+-, seguida de @, un dominio que contiene al menos un punto, y un TLD de dos o más letras. Coincide con: user@example.com, alice.chen@company.co.uk, bob+tag@gmail.com. NO coincide con: invalid@, @missing-local.com, no-at-sign.com, user@.com.
Desglose del Patron
| Parte | Patron | Que coincide |
|---|---|---|
| Ancla de inicio | ^ | Inicio de cada línea (con bandera m) |
| Parte local | [a-zA-Z0-9._%+\-]+ | Letras, digitos y ._%+-, uno o más |
| Arroba | @ | @ literal |
| Etiquetas de dominio | [a-zA-Z0-9.\-]+ | Nombre de dominio permitiendo puntos y guiones |
| Punto antes de TLD | \. | Punto literal |
| TLD | [a-zA-Z]{2,} | Dos o más letras |
| Ancla de fin | $ | Fin de cada línea (con bandera m) |
Errores Comunes en Regex de Correo
No permitir el signo + en la parte local es el problema más frecuente. Gmail y muchos otros proveedores dirigen user+tag@gmail.com a la misma bandeja de entrada que user@gmail.com.
No permitir TLD de multiples niveles es el segundo error más comun. Un patrón que termina con \.[a-zA-Z]{2,3} rechaza alice@company.co.uk porque trata .co como el TLD.
No anclar el patrón con ^ y $ significa que una cadena como esto no es un correo pero contiene uno@example.com coincide con la parte incrustada.
Patron de Correo HTML5
Los navegadores aplican su propio patrón a <input type="email">.
Lo que el Regex No Puede Decirte
Un regex puede confirmar que una dirección se parece a un correo. Pero no puede decirte si el dominio tiene registros MX funcionales, si el buzon existe o si el usuario controla la dirección. El enfoque estándar para cualquier flujo que requiera una dirección de correo real:
- Validación básica de formato con regex
- Sintaxis adicional y verificaciones de dominio (registros MX, formatos de correo desechable)
- Envió de un correo de confirmación con un enlace de verificación
- Verificación de la confirmación antes de activar la cuenta o caracteristica