Validación de correo electrónico en Java

Siddharth Swami 12 octubre 2023
Validación de correo electrónico en Java

Antes de utilizar cualquier correo electrónico, tenemos que validarlo. Los correos electrónicos juegan un papel fundamental en el diseño de formularios. Usando la expresión regular en Java, podemos validar un correo electrónico. Importamos el paquete java.util.regex para trabajar con expresiones regulares en Java.

Java nos proporciona algunas formas de usar una expresión regular para validar correos electrónicos. Varios patrones de expresión regular pueden ayudar a validar correos electrónicos en Java.

La primera forma es usar la expresión regular más simple. El patrón ^(.+)@(.+)$ es la expresión más simple que marca el símbolo @ en los correos electrónicos. En este método, no le importan los caracteres antes y después del símbolo. Simplemente dará falso para ese correo electrónico.

El siguiente código demuestra el método anterior.

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    // Regular Expression
    String regx = "^(.+)@(.+)$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

Producción :

example@domain.com : true

@helloworld.com : false

En el ejemplo anterior, creamos una lista de correos electrónicos que contienen correos electrónicos válidos y no válidos. Usamos la clase matcher para crear un método que verifica si un correo electrónico dado coincide con el patrón o no.

El segundo patrón se utiliza para agregar una restricción en el método de la parte del nombre de usuario. Aquí [A-Za-z0-9+_.-]+@(.+)$ Es la expresión regular utilizada para validar el correo electrónico. Comprueba la parte del nombre de usuario del correo electrónico y, de acuerdo con ella, valida el correo electrónico. Hay algunas reglas para este método. El nombre de usuario puede tener caracteres A-Z, caracteres a-z, números del 0 al 9, punto (.), Guión bajo (_). El nombre de usuario tiene caracteres distintos a los mencionados anteriormente, entonces no será validado.

Por ejemplo,

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    email.add("example2@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    email.add("12Bye#domain.com");
    // Regular Expression
    String regx = "^[A-Za-z0-9+_.-]+@(.+)$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

Producción :

example@domain.com : true

example2@domain.com : true

@helloworld.com : false

12Bye#domain.com : false

El tercer patrón para la validación de correo electrónico está permitido por el método RFC 5322. El ^[a-zA-Z0-9_!#$%&'\*+/=?{|}~^.-]+@[a-zA-Z0-9.-]+$ es el expresión que se utilizará para validar los correos electrónicos. Se utilizan todos los caracteres permitidos para el formato de correo electrónico por el RFC.

Por ejemplo,

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    email.add("exampletwo@domain.com");
    email.add("12@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    // Regular Expression
    String regx = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

Producción :

example@domain.com : true

exampletwo@domain.com : true

12@domain.com : true

@helloworld.com : false