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

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