Java e la validazione del formato di un indirizzo eMail

document_java

Java e la verifica del formato di un indirizzo eMail

Molto spesso capita di dover validare l'input di un utente e molto spesso si deve validare il formato di un indirizzo eMail. Come fare questo con una semplice funzione java?

IL PROBLEMA
Abbiamo un input digitato da un utente, questo input rappresenta un indirizzo eMail e noi lo vogliamo validare.
Si vuole una soluzione espressa in linguaggio java.
 
LA SOLUZIONE
/**
* Funzione per la validazione di un indirizzo e-mail
* @param mail Indirizzo e-mail da validare
* @return TRUE se la mail è stata validata correttamente
*/
public boolean validateMail(String mail)
{
if (mail == null)
{
return false;
}

Pattern p = Pattern.compile(".+@.+\\.[a-z]+", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(mail);
boolean matchFound = m.matches();

//Condizioni più restrittive rispetto alle precedenti
String  expressionPlus="^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
Pattern pPlus = Pattern.compile(expressionPlus, Pattern.CASE_INSENSITIVE);
Matcher mPlus = pPlus.matcher(mail);
boolean matchFoundPlus = mPlus.matches();
         
return matchFound && matchFoundPlus;   
}
 

RIFERIMENTI

- Una guida ben fatta e in italiano sulle espressioni regolari la trovate qua: Espressioni regolari in Java
- La precedente rappresenta una guida facile e riassuntiva delle principali caratteristiche delle espressioni regolari. La più completa la trovate qua.
- Un utilissimo programma per la validazione di indirizzi email è "Advanced Email Verifier"
 
Buon lavoro!