Gladir.com - LotusScript - Validation - Courriel


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 LotusScript suivant, vous trouverez la réponse que vous souhaitez:
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: 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: Mardi, le 7 février 2006