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