miércoles, 3 de mayo de 2017

Validar el correo electronico (email) en Java usando expresiones regulares

   



Estas validaciones de correo electronico son utilizando expresiones regulares. Puede haber otras formas, pero voy a explicarles como hacerlo con expresiones regulares.


Validar email con una expresión regular sencilla:


Ésta expresión regular es simple y se preocupa por que tenga el símbolo '@'. Y que tenga cualquier numero o carácter antes y después del '@'. Veamos un ejemplo rápido para ver a qué me refiero.


public static boolean validarEmailSimple(String email){
        
        String regex = "^(.+)@(.+)$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        
        return matcher.matches();
    }


Validar email con una expresión regular sencilla con mas restricciones:

Las restricciones que vemos añadido son las siguientes:


  • Caracteres permitidos de la A a la Z en mayúsculas.
  • Caracteres permitidos de la "a" a la "z" en minúsculas.
  • Números permitidos del 0 al 9.
  • Y de todos lo caracteres especiales solo pueden usar punto ( . ), guion ( - ) y guion bajo ( _ ).


public static boolean validarEmailSimplePro(String email){
        
        String regex = "^[A-Za-z0-9+_.-]+@(.+)$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        
        return matcher.matches();
    }


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

Tanto la parte local como el nombre de dominio no pueden contener puntos al final ni al inicio, ni tampoco que vallan puntos consecutivos, por ello vamos a validar ese detalle.


public static boolean validarEmailIntemedia(String email){
        
        String regex = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$";
 
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        
        return matcher.matches();
    }


Validación de email recomendada 

Ahora vamos a modificar la expresión regular de tal manera que el nombre de dominio debe incluir al menos un punto, y que la parte del nombre de dominio tras el último punto sólo puede contener letras.

El dominio de nivel superior (.com ) debe consistir en sólo dos a seis caracteres.


public static boolean validarEmailFuerte(String email){
        
        String regex = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$";
 
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        
        return matcher.matches();
    }


Espero que les guste :) Gracias.

NOTA: TODAS LAS FUNCIONES RETORNAN UN TRUE SI EL CORREO ES VALIDO.

Cesar GI

About Cesar GI

Lo que me importa es poder enseñar lo poco que se, por que asi como yo aprendo leyendo gracias a las personas que comparten sus conocimiento yo tambien quiero ayudar a la comunidad en español aportando lo poco que he aprendido hasta el momento.