validateregex validate validar unico regulares regular para expresiones expresion electronico direccion correo casa regex jsf-2 primefaces email-validation

regex - validar - validate email primefaces



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

Aquí es cómo:

Utilizándolo yo mismo ...

<h:inputText id="email" value="#{settingsBean.aFriendEmail}" required="true" label="Email" validatorMessage="#{settingsBean.aFriendEmail} is not valid"> <f:validateRegex pattern="[/w/.-]*[a-zA-Z0-9_]@[/w/.-]*[a-zA-Z0-9]/.[a-zA-Z][a-zA-Z/.]*[a-zA-Z]" /> </h:inputText> <p:message for="email" />

Daniel.

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

<h:inputText value="#{register.user.email}" required="true" />

¿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í está mi versión y funciona bien:

<f:validateRegex pattern="^[_A-Za-z0-9-/+]+(/.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(/.[A-Za-z0-9]+)*(/.[A-Za-z]{2,})$" />

E hice una demostración aquí


Todos los intentos 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.

<f:validateRegex pattern="([^.@]+)(/.[^.@]+)*@([^.@]+/.)+([^.@]+)" />

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 [email protected] 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 devolución de llamada a la dirección de correo electrónico en cuestión y deje que el usuario inicie sesión por correo electrónico.


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

<f:validateRegex pattern="^[_A-Za-z0-9-/+]+(/.[_A-Za-z0-9-]+)*@[/p{L}/p{M}/p{N}.-]*(/.[/p{L}/p{M}]{2,})$" />

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

<f:validateRegex pattern="(^[_A-Za-z0-9-/+]+(/.[_A-Za-z0-9-]+)*@[/p{L}/p{M}/p{N}.-]*(/.[/p{L}/p{M}]{2,})$)?" />