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 Liberty BASIC 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"))
-
- 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 : Samedi, le 23 août 2014