Validación correo electrónico
Expresión regular que se puede utilizar para validar un correo electrónico.
const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
Desglose de la expresión:
^y$:^: Marca el inicio de la cadena.$: Marca el final de la cadena.- Esto asegura que la cadena completa sea evaluada como válida.
- Bloque anterior a @:
- Define los caracteres permitidos en la parte local (antes de
@). - Incluye letras, números y caracteres especiales válidos para correos electrónicos.
+: Indica que debe haber al menos un carácter y puede haber muchos.
- Define los caracteres permitidos en la parte local (antes de
@:- Literalmente el símbolo
@, que separa la parte local del dominio.
- Literalmente el símbolo
[a-zA-Z0-9-]+:[a-zA-Z0-9-]: Define los caracteres permitidos para cada parte del dominio.- Incluye letras, números y el guion (
-), pero no permite guiones al principio o al final.
(?:\.[a-zA-Z0-9-]+)*:(?:...): Agrupación sin captura.\.: Representa literalmente un punto (.).[a-zA-Z0-9-]+: Define las partes del subdominio o dominio de nivel superior.*: Permite cero o más repeticiones (es decir, puede haber múltiples niveles de dominio, comoexample.co.uk).
Ejemplo de uso en JavaScript:
const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
const emails = [
"user@example.com",
"user.name+tag@sub.example.co.uk",
"invalid-email@", // No válido
"@example.com", // No válido
"user@.example.com" // No válido
];
emails.forEach(email => {
console.log(`${email} es válido: ${emailRegex.test(email)}`);
});
Validaciones adicionales
Aunque esta expresión cubre muchos casos, no todas las validaciones de correos electrónicos pueden hacerse con regex. Por ejemplo, validaciones como comprobar dominios reales o sintaxis avanzada (UTF-8) requerirían lógica adicional en el servidor.