Les Chevaliers de Malte/Développeur - JavaScript - Validation - Courriel


La validation des courriels est un des problèmes les plus complexe à mettre en oeuvre lorsqu'on envoie un formulaire. Et pour cause, il faut tenir compte des règles suivantes:

  • Un courriel doit contenir exactement un arobas (@),
  • Le nom de domaine, situé après l'arobas (@) contient un point (.),
  • Seul certains code de caractères sont acceptés.
A l'aide du code source JavaScript suivant, vous trouverez la réponse que vous souhaitez:
<script type="text/javascript" language="javascript">
function IsEmail(Email) {  
    if((Email == null) || (Email.length == 0)) return false;
     for(I = 0; I < Email.length; I++) {   
        switch(Email.charAt(I)) {
                case " ":case "\t":case "\n":case "\r":
               case "(":case ")":case ":":case ",":case "/":case "'":case "\"":
               case "~":case "`":case "!":case "#":case "$":case "%":case "^":
               case "&":case "*":case "+":case "=":case "[":case "]":case "{":
               case "}":case "|":case "\\":case "?":case "<":case ">":
                     return false;
          }
    }
     
     for(ArobasFound = 0, I = 1; I < Email.length; I++) if(Email.charAt(I) == "@") {
          ArobasFound++;
          if(ArobasFound == 1) AfterArobas = I;
     }
    if(ArobasFound!=1) return false;
    AfterArobas += 2;
    while ((AfterArobas < Email.length) && (Email.charAt(AfterArobas) != ".")) AfterArobas++;
    if((AfterArobas >= Email.length - 1) || (Email.charAt(AfterArobas) != ".")) return false;
    else return true;
}

document.write("Courriel «abc» est valide: ",IsEmail("abc"),"<BR>");
document.write("Courriel «@» est valide: ",IsEmail("@"),"<BR>");
document.write("Courriel «@abc.abc» est valide: ",IsEmail("@abc.abc"),"<BR>");
document.write("Courriel «abc@gladir.com» est valide: ",IsEmail("abc@gladir.com"),"<BR>");
document.write("Courriel «abc@@gladir.com» est valide: ",IsEmail("abc@@gladir.com"),"<BR>");
document.write("Courriel «abc@gl][adir.com» est valide: ",IsEmail("abc@gl][adir.com"),"<BR>");
</script>
on obtiendra le résultat suivant:
Courriel «abc» est valide: false
Courriel «@» est valide: false
Courriel «@abc.abc» est valide: false
Courriel «abc@gladir.com» est valide: true
Courriel «abc@@gladir.com» est valide: false
Courriel «abc@gl][adir.com» est valide: false


Dernière mise à jour: Mardi, le 7 février 2006