VALIDATION D'UN EMAIL, EN QUELQUES LIGNES...

Myster Cool - 23 juil. 2001 à 10:02
cs_Pedrosa Messages postés 42 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 2 juin 2008 - 31 août 2006 à 15:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8665-validation-d-un-email-en-quelques-lignes

cs_Pedrosa Messages postés 42 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 2 juin 2008
31 août 2006 à 15:37
Bonjour,
Et en VB.NET comment valide-t-on un e-mail?
Merci.
cs_sivispacem Messages postés 26 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 4 octobre 2006
19 juin 2003 à 20:04
neo8310 as raison.
On enlève : var M = UnEmail.value.toLowerCase();
Et on rajoute /gi; à la place de /g; pour ignorer la casse.
Cela donne
<script langage="JavaScript">
<!--
function EmailOK(UnEmail)
{
var re = /([a-z0-9]+([-_]?[a-z0-9]+)*.)*[a-z0-9]+([-_]?[a-z0-9]+)*@([a-z0-9]+([-_]?[a-z0-9]+)*.)+[a-z]{2,4}/gi;
return (UnEmail.value.match(re) == UnEmail.value);
}
//-->
</script>
Ce test est effectivement plus efficace que l'original qui laisse passer
quelques bizarreries.
a+
neo8310 Messages postés 2 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 4 octobre 2007
23 juil. 2002 à 11:24
sivispacem manque po grand chose pour éviter le toLowerCase ... il y a une motivation particulière ou c'est juste "comme ça" ? ;-)

néanmoins elle marche bien

a++ les gens
cs_sivispacem Messages postés 26 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 4 octobre 2006
26 avril 2002 à 22:58
J'avais fait qq chose d'équivalent le 9 novembre 2001 donc je suis devancé.
Par contre, ton expression régulière laisse passer des mails du type
_@_.xxxxxxx ce qui fait plusieurs erreurs.
Voila ce que j'utilise :

Function EmailOK(UnEmail)
' expression régulière : email de type minimum : x@x.xx
'maxi : n(nx.)nx@n(nx.)xxxx
Dim re
Set re = New RegExp ' Crée l'expression réguliere.
re.Pattern = "([a-z0-9]+([-_]?[a-z0-9]+)*.)*[a-z0-9]+([-_]?[a-z0-9]+)*@([a-z0-9]+([-_]?[a-z0-9]+)*.)+[a-z]{2,4}$"
re.IgnoreCase = True ' Définit le respect de la casse.
re.Global = True ' Définit le champ d'application
EmailOK = re.test(UnEmail)
End Function

Voila pour le code ASP.

J'utilise aussi l'équivalent Javascript :

<script langage="JavaScript">
<!--
function EmailOK(UnEmail)
{
var re = /([a-z0-9]+([-_]?[a-z0-9]+)*.)*[a-z0-9]+([-_]?[a-z0-9]+)*@([a-z0-9]+([-_]?[a-z0-9]+)*.)+[a-z]{2,4}/g;
var M = UnEmail.value.toLowerCase();
return (M.match(re) == M);
}
//-->
</script>
Bix, si tu travailles en Option Explicit, faut d'abord que tu le déclares; c'est la seule chose que je vois, pcq, sans quoi, ça fonctionne très bien!
set modele = New RegExp

marche po
Si tu veux plus d'info sur RegExp :
http://www.microsoft.com/france/scripting/vbscript/doc/vsobjRegExp.htm

Entre autre, le lien pointant vers la propiété Pattern contient pas mal d'infos intéressantes!
Si tu veux plus d'info sur RegExp :
http://www.microsoft.com/france/scripting/vbscript/doc/vsobjRegExp.htm

Entre autre, le lien pointant vers la propiété Pattern contient pas mal d'infos intéressantes!
J'aimerai connaitre la librairie de l'objet que tu as utiliser pour valider ton modele dans ta string...

merci
Come on, gang...

Je dis pas que mon code est génial, mais, si vous voulez y mettre une note nulle, ayant au moins le savoir vivre d'en profiter pour ajouter un commentaire constructif.

S'il a des failles, je ne demande qu'à l'améliorer!!!
Merci de ton code, ça m'a évité de me le repalucher :)
Rejoignez-nous