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 Turbo Basic suivant, vous trouverez la réponse que vous souhaitez:
DEF FNBool2Str$(value)
IF value=0 THEN FNBool2Str$="false" ELSE FNBool2Str$="true"
END DEF
DEF FNIsEmail(Email$)
LOCAL ArobasFound,AfterArobas,I
AfterArobas=0
IF Len(Email$) = 0 THEN FNIsEmail=0:EXIT DEF
FOR I = 1 TO Len(Email$)
SELECT CASE MID$(Email$,I,1)
CASE " ",CHR$(9),CHR$(13),CHR$(10),"(",")",":",",","/","\",CHR$(34),"~","`","!","#","$","%","^","&","*","+","=","[","]","{","}","|","\","?","<",">":
FNIsEmail=0:EXIT DEF
END SELECT
NEXT
ArobasFound = 0
FOR I = 2 TO Len(Email$)
IF MID$(Email$,I,1) = "@" THEN
INCR ArobasFound
IF ArobasFound = 1 THEN AfterArobas = I
END IF
NEXT
IF ArobasFound<>1 THEN FNIsEmail=0:EXIT DEF
INCR AfterArobas,2
WHILE ((AfterArobas <= Len(Email$)) AND (MID$(Email$,AfterArobas,1) <> "."))
INCR AfterArobas
WEND
IF((AfterArobas >= Len(Email$)) OR (MID$(Email$,AfterArobas,1) <> "."))THEN FNIsEmail=0:EXIT DEF
FNIsEmail=1
END DEF
PRINT "Courriel «abc» est valide: "+FNBool2Str$(FNIsEmail("abc"))
PRINT "Courriel «@» est valide: "+FNBool2Str$(FNIsEmail("@"))
PRINT "Courriel «@abc.abc» est valide: "+FNBool2Str$(FNIsEmail("@abc.abc"))
PRINT "Courriel «abc@gladir.com» est valide: "+FNBool2Str$(FNIsEmail("abc@gladir.com"))
PRINT "Courriel «abc@@gladir.com» est valide: "+FNBool2Str$(FNIsEmail("abc@@gladir.com"))
PRINT "Courriel «abc@gl][adir.com» est valide: "+FNBool2Str$(FNIsEmail("abc@gl][adir.com"))
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 : Mardi, le 28 juillet 2015