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 Visual Basic .NET (VB .NET) suivant, vous trouverez la réponse que vous souhaitez :
- Module Module1
-
- Function IsEmail(Email As String)
- Dim ArobasFound As Integer
- Dim AfterArobas As Integer
- If ((String.IsNullOrEmpty(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 " ", "\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()
- Console.WriteLine("Courriel «abc» est valide: " & Convert.ToString(IsEmail("abc")))
- Console.WriteLine("Courriel «@» est valide: " & Convert.ToString(IsEmail("@")))
- Console.WriteLine("Courriel «@abc.abc» est valide: " & Convert.ToString(IsEmail("@abc.abc")))
- Console.WriteLine("Courriel «abc@gladir.com» est valide: " & Convert.ToString(IsEmail("abc@gladir.com")))
- Console.WriteLine("Courriel «abc@@gladir.com» est valide: " & Convert.ToString(IsEmail("abc@@gladir.com")))
- Console.WriteLine("Courriel «abc@gl][adir.com» est valide: " & Convert.ToString(IsEmail("abc@gl][adir.com")))
- End Sub
-
- End Module
-
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 22 octobre 2016