Cómo funciona el patrón
| Parte | Significado |
|---|---|
^ | Inicio de la cadena |
[A-Za-z0-9._%+-]+ | La parte local: una o más letras, dígitos, puntos, guiones bajos, signos de porcentaje, más o guiones |
@ | Una @ literal |
[A-Za-z0-9.-]+ | El nombre de dominio, incluidos los subdominios |
\. | Un punto literal antes del dominio de nivel superior |
[A-Za-z]{2,} | El dominio de nivel superior: dos o más letras (com, io, museum) |
$ | Fin de la cadena |
Ejemplos de código
JavaScript
const re = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}', value))PHP
preg_match('/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/', $value) === 1;
Notas y limitaciones
Este es el patrón práctico que usan la mayoría de formularios de registro. Acepta algunas direcciones técnicamente raras (dos puntos seguidos) y rechaza algunas válidas poco comunes (partes locales entre comillas, dominios con dirección IP). La única prueba real de un correo electrónico es enviar un enlace de confirmación. En los formularios HTML, <input type="email"> te da la validación del navegador sin esfuerzo.
Probador de expresiones regulares
Escribe un patrón y observa cómo se resaltan las coincidencias en tiempo real en tu texto de prueba.