Section courante

A propos

Section administrative du site

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:

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: 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 : Samedi, le 4 octobre 2008