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 QuickBASIC suivant, vous trouverez la réponse que vous souhaitez :
- DECLARE FUNCTION Bool2Str$ (value!)
- DECLARE FUNCTION IsEmail! (Email$)
- 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"))
-
- FUNCTION Bool2Str$ (value)
- IF value = 0 THEN Bool2Str$ = "FALSE" ELSE Bool2Str$ = "TRUE"
- END FUNCTION
-
- FUNCTION IsEmail (Email$)
- AfterArobas = 0
- IF LEN(Email$) = 0 THEN
- IsEmail = 0
- EXIT FUNCTION
- END IF
- FOR I = 1 TO LEN(Email$)
- CurrChar$ = LEFT$(MID$(Email$, I), 1)
- SELECT CASE CurrChar$
- CASE " ", "(", ")", ":", ",", "/", "\", "~", "`", "!", "#", "$", "%", "^", "&", "*", "+", "=", "[", "]", "{", "}", "|", "\", "?", "<", ">"
- IsEmail = 0
- EXIT FUNCTION
- END SELECT
- IF CurrChar$ = CHR$(9) OR CurrChar$ = CHR$(13) OR CurrChar$ = CHR$(10) OR CurrChar$ = CHR$(34) THEN
- IsEmail = 0
- EXIT FUNCTION
- END IF
- NEXT
- ArobasFound = 0
- FOR I = 2 TO LEN(Email$)
- IF LEFT$(MID$(Email$, I), 1) = "@" THEN
- ArobasFound = ArobasFound + 1
- IF ArobasFound = 1 THEN AfterArobas = I
- END IF
- NEXT
- IF ArobasFound <> 1 THEN
- IsEmail = 0
- EXIT FUNCTION
- END IF
- AfterArobas = AfterArobas + 2
- WHILE ((AfterArobas <= LEN(Email$)) AND (LEFT$(MID$(Email$, AfterArobas), 1) <> "."))
- AfterArobas = AfterArobas + 1
- WEND
- IF ((AfterArobas >= LEN(Email$)) OR (LEFT$(MID$(Email$, AfterArobas), 1) <> ".")) THEN
- IsEmail = 0
- EXIT FUNCTION
- END IF
- IsEmail = 1
- END FUNCTION
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 : Mercredi, le 14 septembre 2016