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.
- Function Bool2Str$(value As Integer)
- If value=0 Then Bool2Str$="false" Else Bool2Str$="true"
- End Function
-
- Function IsEmail(Email As String) As Integer
- Dim I,ArobasFound,AfterArobas As Integer
- If(Email = "")Or(Len(Email)=0)Then
- IsEmail=False
- Exit Function
- End If
- For I=1 To Len(Email)
- Select Case Mid$(Email,I,1)
- Case Chr(9), Chr(10), Chr(13), " ", "\t", "\n", "\r", "(", ")", ":", ",", "/", "'", """", _
- "~", "`", "!", "#", "$", "%", "^", "&", "*", "+", "=", "[", "]", "{", "}", "|", "\", "?", "<", ">":
- IsEmail=False
- Exit Function
- End Select
- Next
- ArobasFound = 0
- For I = 2 To Len(Email)
- If Mid$(Email,I,1) = "@" Then
- ArobasFound = ArobasFound + 1
- If ArobasFound = 1 Then AfterArobas = I
- End If
- Next
- If ArobasFound <> 1 Then
- IsEmail = False
- Exit Function
- End If
- AfterArobas = AfterArobas + 2
- Do While ((AfterArobas < Len(Email)) And (Mid$(Email,AfterArobas,1) <> "."))
- AfterArobas = AfterArobas + 1
- Loop
- If((AfterArobas >= Len(Email) - 1) Or (Mid$(Email,AfterArobas,1) <> ".")) Then
- IsEmail = False
- Else
- IsEmail = True
- End If
- End Function
-
- Sub Main
- 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"))
- End Sub
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 : Dimanche, le 18 janvier 2015