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.