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 Free 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: falseCourriel «@» 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 : Jeudi, le 29 décembre 2011