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 DarkBASIC suivant, vous trouverez la réponse que vous souhaitez:
PRINT "Courriel «abc» est valide: "+Bool2Str$(IsEmail("abc"))
PRINT "Courriel «@» est valide: "+Bool2Str$(IsEmail("@"))
PRINT "Courriel «@abc.abc» est valide: "+Bool2Str$(IsEmail("@abc.abc"))
PRINT "Courriel «abc@gladir.com» est valide: "+Bool2Str$(IsEmail("abc@gladir.com"))
PRINT "Courriel «abc@@gladir.com» est valide: "+Bool2Str$(IsEmail("abc@@gladir.com"))
PRINT "Courriel «abc@gl][adir.com» est valide: "+Bool2Str$(IsEmail("abc@gl][adir.com"))
WAIT KEY
FUNCTION Bool2Str$(value)
IF value=0 THEN ReturnValue$="false" ELSE ReturnValue$="true"
ENDFUNCTION ReturnValue$
FUNCTION IsEmail(Email$)
LOCAL ArobasFound,AfterArobas,I
AfterArobas=0
IF Len(Email$) = 0 THEN EXITFUNCTION 0
FOR I = 1 TO Len(Email$)
CurrChar$=LEFT$(MID$(Email$,I),1)
SELECT CurrChar$
CASE " ","(",")",":",",","/","\","~","`","!","#","$","%","^","&","*","+","=","[","]","{","}","|","\","?","<",">":
EXITFUNCTION 0
ENDCASE
ENDSELECT
IF CurrChar$=Chr$(9) OR CurrChar$=Chr$(13) OR CurrChar$=Chr$(10) OR CurrChar$=Chr$(34) THEN EXITFUNCTION 0
NEXT
ArobasFound = 0
FOR I = 2 TO Len(Email$)
IF LEFT$(MID$(Email$,I),1) = "@"
INC ArobasFound
IF ArobasFound = 1 THEN AfterArobas = I
ENDIF
NEXT
IF ArobasFound<>1 THEN EXITFUNCTION 0
INC AfterArobas,2
WHILE ((AfterArobas <= Len(Email$)) AND (LEFT$(MID$(Email$,AfterArobas),1) <> "."))
INC AfterArobas
ENDWHILE
IF ((AfterArobas >= Len(Email$)) OR (LEFT$(MID$(Email$,AfterArobas),1) <> ".")) THEN EXITFUNCTION 0
ReturnValue=1
ENDFUNCTION ReturnValue
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 : Samedi, le 4 octobre 2008