Fonction test si le string est un mail.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 707 fois - Téléchargée 34 fois

Contenu du snippet

Bonjour tout le monde.

Comme je l'ai constater de nombreuse personnes chercheent des fonction vérifiant si la chaine de caractère est bien une adresse mail. Et comme je me suis trouvé obligé de creer cette fonction je souhaite la faire partager a tout le monde.

bye

Source / Exemple :


La fonction suivante me permet de tester si une chaine de caractères
demandée et bien de type adresse e-mail!
Cette fonction retourne vrai si c'est une adresse mail et faux dans le 
cas contraire.

  • /
function verifMail(adrMail:String):Boolean{ var i:Number; var verifAdres:Boolean = false; var verifPt:Boolean = false; //parcourt la chaîne de caractère afin de savoir si il y a un espace. for(i = 0; i < adrMail.length; i++){ if(adrMail.charAt(i) == " ") { return false; } } //parcourt la chaîne de caractère afin de savoir si il y a un @. for(i = 0; i < adrMail.length; i++){ if(adrMail.charAt(i) != "@") { if (verifAdres == false && i == adrMail.length-1){ return verifAdres; } } else { verifAdres = true; } } //parcourt la chaîne de caractère afin de savoir si il y a un point. for(i = 0; i < adrMail.length; i++){ if(adrMail.charAt(i) != ".") { if (verifPt == false && i == adrMail.length-1){ return verifPt; } } else { verifPt = true; } } var pieces_a:Array = adrMail.split("@"); // Découpage de ma chaine de caratère mail avec le @ var lastPieces:String = pieces_a[pieces_a.length - 1]; //Récupération de la dernière valeur du tableau (juste au cas ou il y aurait 2 @!) var pieces_pts:Array = lastPieces.split("."); // Découpage de ma chaine de caratère, situé apres le dernier @, avec le point (.) var lastString:String = pieces_pts[pieces_pts.length - 1];//Récupération de la dernière valeur du tableau (le nom de domaine) // Traitement (test) sur le nom de domaine du mail. if ((lastString.length > 4) || (lastString.length < 2)){ return false; } else { return true; } }

A voir également

Ajouter un commentaire Commentaires
alex6ndre Messages postés 1 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 août 2006
30 août 2006 à 17:41
perso pour faire une verif rapide de mail, j'utilise INDEXOF qui balaye la chaine à la recherche de tes criteres, s'il trouve, il te renvoit la position du caractere demandé, sinon, il te renvoi -1;...aprés facile tu programmes un (if -1 = pas bon)


var vmail = text_mail.text;
var arobase;
var pointmail;
arobase = vmail.indexOf("@");
pointmail = vmail.indexOf(".");
if (arobase == -1) {......
if (pointmail == -1) {.....
individis-bis Messages postés 293 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 25 septembre 2008
14 nov. 2004 à 01:06
Explique si tu as mieux...
kingcobra Messages postés 316 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 19 septembre 2012
13 nov. 2004 à 23:54
que c'est compliqué... que de lignes pour rien...
individis-bis Messages postés 293 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 25 septembre 2008
13 nov. 2004 à 18:55
Moi j'utilise ca... c pas plus mal...
en proto
String.prototype.ValideMail = function(){
var arrobas = 0;
var point = 0;
var dom = 0;
for(i=0;i<this.length;i++){
if(this.charAt(i) == "@"){arrobas++;dom=i;}
}
if(this.charAt(this.length-3) == ".")point++;//.xx
else if(this.charAt(this.length-4) == ".")point++;//.xxx
else if(this.charAt(this.length-5) == ".")point++;//.xxxx
else if(this.charAt(this.length-2) == ".")point=0;//.x

if(dom 0 || this.charAt(dom+1) ".")point=0;//verifie si qq chose avant @, ou si '@ et .' sont collés.

if(arrobas==1 && point>=1)return true;
return false;
}

avec pour exemple...
function testMail() {
if (!mail_txt.ValideMail()) {
message = "L'adresse email n'est pas correcte, essayez à nouveau";//recommence
Selection.setFocus("FormMail");// retourne au champs mail
} else {
//continue c bon... }
}
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
13 nov. 2004 à 14:17
oké dans l'optique de faire de l'AS2 je comprend
Afficher les 9 commentaires

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.