Gladir.com - Pascal - 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 Pascal suivant, vous trouverez la réponse que vous souhaitez:
Program Email;

Function IsEmail(Email:String):Boolean;
Var
 I,ArobasFound,AfterArobas:Integer;
Begin
 If(Email = '')or(Length(Email)=0)Then Begin
  IsEmail:=False;
  Exit;
 End;
 For I:=1 To Length(Email) do Begin
  Case Email[I] of
     #9 , #10 , #13 , ' ','(',')',':',',',
     '/','''','"','~','`','!','#','$','%','^','&','*','+','=','[',
     ']','{','}','|','\','?','<','>':Begin
      IsEmail:=False;
      Exit;
     End;
  End;
 End;
 ArobasFound := 0;
 FOR I:=2 to Length(Email) do Begin
  If Email[I] = '@'Then Begin
   Inc(ArobasFound);
   If ArobasFound = 1 Then AfterArobas:=I;
  End;
 End;
 If ArobasFound <> 1Then Begin
  IsEmail:=False;
  Exit;
 End;
 Inc(AfterArobas,2);
 While (AfterArobas < Length(Email)) and (Email[AfterArobas] <> '.') do Inc(AfterArobas);
 IsEmail:=Not((AfterArobas >= Length(Email) - 1) OR (Email[AfterArobas] <> '.'));
End;

BEGIN
 WriteLn('Courriel «abc» est valide: ',IsEmail('abc'));
 WriteLn('Courriel «@» est valide: ',IsEmail('@'));
 WriteLn('Courriel «@abc.abc» est valide: ',IsEmail('@abc.abc'));
 WriteLn('Courriel «abc@gladir.com» est valide: ',IsEmail('abc@gladir.com'));
 WriteLn('Courriel «abc@@gladir.com» est valide: ',IsEmail('abc@@gladir.com'));
 WriteLn('Courriel «abc@gl][adir.com» est valide: ',IsEmail('abc@gl][adir.com'));
END.
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