Validación de correo electrónico con expresión regular en JSF 2 / PrimeFaces

Tengo un campo de entrada que toma una dirección de correo electrónico:

 

¿Cómo puedo validar el valor ingresado como una dirección de correo electrónico válida usando expresiones regulares en JSF 2 / PrimeFaces?

Aquí es cómo:

Utilizándolo yo mismo …

     

Daniel.

Todos los bashs de expresiones regulares para validar el formato de correo electrónico basado en caracteres latinos están rotos . No admiten nombres de dominio internacionalizados que estaban disponibles desde mayo de 2010. Sí, lo leyó bien, los caracteres no latinos se permiten desde entonces en nombres de dominio y, por lo tanto, también direcciones de correo electrónico.

Por lo tanto, son extremadamente muchos los caracteres posibles para validar. Lo mejor es simplemente mantenerlo simple. La siguiente expresión regular solo valida el formato de correo electrónico en función de la aparición de @ y . caracteres.

  

De nuevo, esto solo valida el formato general del correo electrónico, no si el correo electrónico en sí es legítimo. Todavía se puede ingresar aa@bb.cc como dirección y pasar la validación. Nadie regex puede cubrir eso. Si la validez de la dirección de correo electrónico es tan importante, combínela con un sistema de autenticación. Simplemente envíe un tipo de correo electrónico de activación con un enlace de callback a la dirección de correo electrónico en cuestión y permita que el usuario inicie sesión por correo electrónico.

Aquí está mi versión y funciona bien:

  

E hice una demostración aquí

Este es compatible con nombres de dominio Unicode en el correo electrónico:

  

… y este solo valida el correo electrónico cuando se ingresa el correo electrónico (el campo de formulario no es obligatorio):