Validación de correo electrónico en Java usando regex

La validación de correo electrónico usando expresiones regulares es una tarea común que puede ser requerida en cualquier aplicación que busque la dirección de correo electrónico como información requerida en el paso de registro. Puede haber más casos de uso pero eso no es el punto de discusión aquí.

Vayamos directamente a la discusión principal, es decir, para validar el correo electrónico en Java utilizando expresiones regulares.

Simplest regex to validate email

Regex : ^(.+)@(.+)$

Esta es la más simple y sólo se preocupa por el símbolo ‘@’. Antes y después del símbolo ‘@’, puede haber cualquier número de caracteres. Veamos un ejemplo rápido para ver lo que quiero decir.

Salida del programa.

Este patrón está disponible en la clase EmailValidator de Common lang. Así que si se ajusta a su necesidad, puede utilizar directamente esta clase.

Añadir restricciones en la parte del nombre de usuario

Regex : ^+@(.+)$

En esta regex, hemos añadido algunas restricciones en la parte del nombre de usuario de la dirección de correo electrónico. Las restricciones en la expresión regular anterior son:

Probemos algunas direcciones de correo electrónico con la expresión regular anterior.

Salida del programa.

Tenga en cuenta que puede aplicar una restricción similar a la parte del nombre de dominio. Entonces la expresión regular se convertirá en esto.

^+@+$

Validación de correo electrónico de Java permitido por RFC 5322

Regex : ^+@+$

Este ejemplo de regex utiliza todos los caracteres permitidos por el RFC 5322, que rige el formato de los mensajes de correo electrónico. Entre los caracteres permitidos hay algunos que presentan un riesgo de seguridad si se pasan directamente de la entrada del usuario a una sentencia SQL, como las comillas simples (‘) y el carácter de tubería (|).

Debe asegurarse de escapar los caracteres sensibles al insertar la dirección de correo electrónico en una cadena pasada a otro programa, para evitar agujeros de seguridad como los ataques de inyección SQL.

Salida del programa.

Regex para restringir los puntos iniciales, finales o consecutivos en los correos electrónicos

Regex : ^+(?:\\.+)*@+(?:\.+)*$

Tanto la parte local como el nombre de dominio pueden contener uno o más puntos, pero no pueden aparecer dos puntos seguidos. Además, el primer y el último carácter de la parte local y del nombre de dominio no deben ser puntos:

Salida del programa.

Regla para restringir el número de caracteres en el dominio de nivel superior

Ahora vamos a modificar la regex de forma que el nombre de dominio deba incluir al menos un punto, y que la parte del nombre de dominio después del último punto sólo pueda estar formada por letras.

Digamos que los nombres de dominio son como segundonivel.com o tercernivel.segundonivel.com. El dominio de primer nivel (.com en estos ejemplos) debe constar sólo de dos a seis letras.

Regex : ^+(?:\\.+)*@(?:+\.)+{2,6}$

Salida del programa.

Esta última regex es mi recomendación para la validación de correo electrónico simple en java. Tenga en cuenta que la validación de correo electrónico en java sin expresión regular puede ser posible, pero no se recomienda. Dondequiera que usted necesita para hacer frente a los patrones, las expresiones regulares son su amigo.

Por favor, siéntase libre de utilizar este regex, así como editarlo según las necesidades adicionales de su aplicación.

¡Feliz aprendizaje!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.