Verificateur de validite d'email

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 512 fois - Téléchargée 26 fois

Contenu du snippet

cette fonction necessite une chaine de caracteres en parametre, elle retourne un boolean...
- true : si l'adresse parait bonne
- false : si l'adresse parait fausse
Elle verifie la validité sur 13 points :
- minimum 8 caractéres ( Ex: xx@xx.xx )
- presence d'un arobase ( Ex: xxxx.xx )
- presence d'un point ( Ex: xx@xxxx )
- absence de point derriere l'arobase ( Ex: xx@.xx.xx )
- absence de point devant l'arobase ( Ex: xx.@xx.xx )
- absence de point au debut ( Ex: .xx@xx.xx )
- absence de point a la fin ( Ex: xx@xx.xx. )
- absence d'arobase au debut ( Ex: @xxxx.xx )
- absence de point a la fin ( Ex: xxxx.xx@ )
- presence d'un point un peu apres l'arobase ( Ex: xx@xx.xx )
- absence de plusieur arobase ( Ex: xx@@xx.xx )
- absence de 2 points d'affilé ( Ex: x..x@xx.xx )
- absence de caractéres interdis ( Ex: [-)}'"|\..... )

Voila... j'ai pu faire un maximum de test et ca me parait tres bien verifier les adresse...
ca peu service, c'est certain .. :p
( ps : si vous trouvé un bug, une omition, n'hesite pas a me prevenir ;) )

Source / Exemple :


public boolean testEmail(String email)
    {
    	email=email.toLowerCase();
    	String charOk="abcdefghijklmnopqrstuvwxyz0123456789_@.";
    	boolean test=false;
    	if (email.length()<8){return false;}// Si l'email fait moins de 8 caractéres
    	if (email.indexOf('@')<0){return false;}// Si l'email ne contient pas d'@'
    	if (email.indexOf('.')<0){return false;}// Si l'email ne contient pas de '.'
    	if (((email.indexOf('.', (((email.indexOf('@'))+1)))))==(email.indexOf('@')+1)){return false;}// Si l'email as un '.' apres l'@
    	if (((email.indexOf('.', (((email.indexOf('@'))-1)))))==(email.indexOf('@')-1)){return false;}// Si l'email as un '.' avant l'@
    	if ((email.indexOf('.'))==0){return false;}// Si l'email as un '.' au debut
    	if ((email.charAt((email.length()-1))=='.')){return false;}// Si l'email a un '.' a la fin
    	if ((email.indexOf('@'))==0){return false;}// Si l'email as un '@' au debut
    	if ((email.charAt((email.length()-1))=='@')){return false;}// Si l'email a un '@' a la fin
    	// Si l'email n'a pas de '.' un peu apres le '@'
    	boolean tmp=false;
    	for (int i=1;i<(email.length()-(email.indexOf('@')));i++)
    	{
    		if (email.charAt((email.indexOf('@'))+i)=='.')
    		{
    			tmp=true;
    			i=(email.length());
    		}
    	}
    	if (tmp==false){return false;}
    	// Si l'email a plusieurs '@'
    	for (int i=0;i<email.length();i++)
    	{
    		if (email.charAt(i)=='@')
    		{
    			for (int j=i+1;j<email.length();j++)
    			{if (email.charAt(j)=='@'){return false;}}
    		}		
    	}
    	// Si l'email a 2 '.' d'affilé
    	for (int i=0;i<(email.length()-1);i++)
    	{if ((email.charAt(i)=='.') && (email.charAt(i+1)=='.')){return false;}}
    	// Si l'email contient un caractére interdis
    	for (int i=0;i<email.length();i++)
    	{
    		for (int j=0;j<charOk.length();j++)
    		{
    			if ((email.charAt(i))==(charOk.charAt(j)))
    			{
    				test=true;
    				j=(charOk.length());
    			}
    			else {test=false;}
    		}
    		if (test==false){return test;}
    	}
    	return test;    			
    }

A voir également

Ajouter un commentaire

Commentaires

cs_samgoa
Messages postés
8
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
4 juillet 2003
-
je pense qu'il reste encore quelques conditions à controler.
Pour les noms de domaine il existe aussi le .info par exemple
les -@- ou _@_ ou les __ je n'ai pas l'impression de voir quelque chose sur les espaces aussi.
A suivre...
sauvageor
Messages postés
7
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
14 mars 2007
-
le code n'est pas complet,
il mamque les regles de gestions des nom de domaine
les pays sont sur 2 carracterres et les exception sur 3 caracteres
les exceptions sont connue un dizainne environs
voici une exepression reguliere proche de la verité : il manque les nouveaux dommaines que je n'ai pas encore mis à jour
"^[^@ ]+@([a-zA-Z0-9-]+.)+([a-zA-Z0-9-]{2}|net|com|gov|mil|org|edu|int)

Sauvageor
sauvageor
Messages postés
7
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
14 mars 2007
-
le code n'est pas complet,
il m
skro90
Messages postés
8
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2003
-
non, a@a.a ne passe pas... car il doit y avoir au minimum 8 caractéres
( xx@xx.xx )
cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
a@a.a ça passe

faudrais vérifier la fin que ça soit: .com, .net. org, .ca , .................

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (skro90)