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, como- example.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.
 
			 
			