Bonjour,
Je voudrais savoir comment fait-on pour valider une adresse mail lorsque l'on soumet un formulaire.
Je voudrais que mon adresse finisse toujour par "@toto.fr"
merci
Bonjour,
Je voudrais savoir comment fait-on pour valider une adresse mail lorsque l'on soumet un formulaire.
Je voudrais que mon adresse finisse toujour par "@toto.fr"
merci
Bonjour,
Tout dépend ce que veut dire "lorsque". Si c'est avant la soumission, alors vous pouvez utiliser le Javascript avec les Expressions Régulières.
Si c'est après la soumission, ce sera avec un langage serveur et... les Expressions Régulières.
Vous pouvez-faire une recherche sur le forum. Le cas du mail y est sûrement traité plus d'une fois. (mot-clef : RegExp).
En même temps utiliser des regex pour tester si une chaîne de caractère se termine par une sous-chaine c'est un peu abuser...
Le plus simple c'est de faire un indexOf().
Effectivement.
Cependant, la RegExp permet de préciser le "finisse toujours par" et qu'il n'y ait qu'une seule fois l'occurrence.
Autant je suis d'accord sur le fait qu'il vaut mieux utiliser des regex pour les validation en général, autant ce que tu avances pour vanter les mérites des regex est relativement faux.
Il est assez difficile d'écrire une regex permettant de vérifier le nombre d'occurence d'une sous-chaîne (de plus d'un caractère). En l'occurrence, vérifier qu'il n'y a qu'une seule occurrence de "@toto.fr" dans la chaîne serait assez pénible à mettre en regex.
Alors que le fait d'écrire ça marchera toujours :
Ca teste que la première occurrence de "@toto.fr" se trouve à la fin de la chaîne. En d'autre termes ça teste qu'il existe une et une seule occurrence de "@toto.fr" dans la chaîne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var finMail = "@toto.fr"; var mailValide = mail.indexOf(finMail) == (mail.length - finMail.length);
Avec une regex faut s'amuser pour écrire ça... (bon, dans le cas d'un mail c'est simple, il suffit de s'assurer qu'il n'y a pas de "@" avant celui qu'on cherche mais en général c'est loin d'être simple).
Au temps pour moi.
Je n'avais pas imaginé que l'on puisse s'en sortir en une seule ligne.
Romain, j'y vois une idée de plus pour tes petits jeux.
Avec une regExp en test ou match
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var mail1="truc@toto.fr"; var mail2="truc@tata.fr"; alert((/[a-z]{2,}@toto.fr$/i).test(mail1)) alert((/[a-z]{2,}@toto.fr$/i).test(mail2))
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
j'utilise une (des expression régulières)
A+JYT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 { 'email' : '^[0-9a-zA-Z_\-]+(\\.)?[0-9a-zA-Z_\-]*@([0-9a-zA-Z_-]+\\.)+[a-zA-Z]{2,4}$', 'emailOrNull' : '^[0-9a-zA-Z_\-]+(\\.)?[0-9a-zA-Z_\-]*@([0-9a-zA-Z_-]+\\.)+[a-zA-Z]{2,4}$|^$' }
Partager