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 Liberty BASIC suivant, vous trouverez la réponse que vous souhaitez :

  1. PRINT "Courriel «abc» est valide: " + Bool2Str$(IsEmail("abc"))
  2. PRINT "Courriel «@» est valide: " + Bool2Str$(IsEmail("@"))
  3. PRINT "Courriel «@abc.abc» est valide: " + Bool2Str$(IsEmail("@abc.abc"))
  4. PRINT "Courriel «abc@gladir.com» est valide: " + Bool2Str$(IsEmail("abc@gladir.com"))
  5. PRINT "Courriel «abc@@gladir.com» est valide: " + Bool2Str$(IsEmail("abc@@gladir.com"))
  6. PRINT "Courriel «abc@gl][adir.com» est valide: " + Bool2Str$(IsEmail("abc@gl][adir.com"))
  7.  
  8. FUNCTION Bool2Str$(value)
  9.     IF value = 0 THEN Bool2Str$ = "false" ELSE Bool2Str$ = "true"
  10. END FUNCTION
  11.  
  12. FUNCTION IsEmail(Email$)
  13.     AfterArobas=0
  14.     IF Len(Email$) = 0 THEN
  15.         IsEmail = 0
  16.         EXIT FUNCTION
  17.     END IF
  18.     FOR I = 1 TO Len(Email$)
  19.        CurrChar$ = LEFT$(MID$(Email$,I),1)
  20.        SELECT CASE CurrChar$
  21.           CASE " ","(",")",":",",","/","\","~","`","!","#","$","%","^","&","*","+","=","[","]","{","}","|","\","?","<",">"
  22.               IsEmail = 0
  23.               EXIT FUNCTION
  24.        END SELECT
  25.        IF CurrChar$=Chr$(9) OR CurrChar$=Chr$(13) OR CurrChar$=Chr$(10) OR CurrChar$=Chr$(34) THEN
  26.             IsEmail = 0
  27.             EXIT FUNCTION
  28.        END IF
  29.     NEXT
  30.     ArobasFound = 0
  31.     FOR I = 2 TO Len(Email$)
  32.        IF LEFT$(MID$(Email$,I),1) = "@" THEN
  33.            ArobasFound = ArobasFound + 1
  34.            IF ArobasFound = 1 THEN AfterArobas = I
  35.        END IF
  36.     NEXT
  37.     IF ArobasFound<>1 THEN
  38.         IsEmail = 0
  39.         EXIT FUNCTION
  40.     END IF
  41.     AfterArobas = AfterArobas + 2
  42.     WHILE ((AfterArobas <= Len(Email$)) AND (LEFT$(MID$(Email$,AfterArobas),1) <> "."))
  43.        AfterArobas = AfterArobas + 1
  44.     WEND
  45.     IF ((AfterArobas >= Len(Email$)) OR (LEFT$(MID$(Email$,AfterArobas),1) <> ".")) THEN
  46.         IsEmail = 0
  47.         EXIT FUNCTION
  48.     END IF
  49.     IsEmail = 1
  50. END FUNCTION

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 23 août 2014