Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfung E-Mail-Adresse Code-Frage

Prüfung E-Mail-Adresse Code-Frage
05.09.2018 10:29:28
SteffenS77
Hallo Zusammen,
ich habe im Netz folgendes Code-Schnipsel zur Validierung einer E-Mail-Adresse gefunden. Voraussetzung ist, dass ich einen Verweis auf die "Microsoft VBScript Regular Expressions" setze.
Nun meine Fragen:
Funktioniert der Verweis unabhängig von der Excel Version ab 2010 oder gibt es da ggf. Einschränkungen?
Zudem erhalte ich als Ergbnis der Contante zurück. Ich möchte allerdings nur ein wahr oder falsch zurück bekommen. Muss ich da noch etwas anpassen.
Public Function ValidateEmail(ByVal strEmail As String) As Boolean
Const cPatternSmall = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
Const cPatternRFC2822 = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|" & _
"}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:" & _
"[a-z0-9-]*[a-z0-9])?"
MsgBox cPatternRFC2822
Dim myReg As RegExp
Set myReg = New RegExp
myReg.Pattern = cPatternRFC2822  ' Durch cPatternSmall ersetzen für einfachen Test
myReg.IgnoreCase = True
ValidateEmail = myReg.test(strEmail)
Set myReg = Nothing
End Function

VG und Danke schon einmal
SteffenS

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Probiere es mal so der...
05.09.2018 10:35:58
Case
Hallo, :-)
... Spur nach: ;-)
Public Function ValidateEmail(ByVal strEmail As String) As Boolean
Const cPatternSmall = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
Const cPatternRFC2822 = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|" & _
"}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:" & _
"[a-z0-9-]*[a-z0-9])?"
'MsgBox cPatternRFC2822
'Dim myReg As RegExp
Dim myReg As Object
'Set myReg = New RegExp
Set myReg = CreateObject("VbScript.RegExp")
myReg.Pattern = cPatternRFC2822  ' Durch cPatternSmall ersetzen für einfachen Test
myReg.IgnoreCase = True
ValidateEmail = myReg.test(strEmail)
Set myReg = Nothing
End Function
Servus
Case

Anzeige
AW: Probiere es mal so der...
05.09.2018 11:09:42
Luschi
Hallo Case,
dieses Beispiel liefert WAHR statt FALSCH:

Sub test1()
Dim s
s = "test.Beispiel@tele@com.de"
Debug.Print ValidateEmail(s)
End Sub
Gruß von Luschi
aus klein-Paris
Habe auch die Funktion...
05.09.2018 12:39:39
Case
Hallo Luschi, :-)
... nur auf "Late Binding" umgemodelt. ;-)
Public Function ValidateEmail(ByVal strEmail As String) As Boolean
Const cPatternSmall = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
Const cPatternRFC2822 = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|" & _
"}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:" & _
"[a-z0-9-]*[a-z0-9])?"
'MsgBox cPatternRFC2822
'Dim myReg As RegExp
Dim myReg As Object
'Set myReg = New RegExp
'eMailSplices = Split(sEMailAdr, "@")
If UBound(Split(strEmail, "@"))  1 Then ValidateEmail = False: Exit Function
Set myReg = CreateObject("VbScript.RegExp")
myReg.Pattern = cPatternRFC2822  ' Durch cPatternSmall ersetzen für einfachen Test
myReg.IgnoreCase = True
ValidateEmail = myReg.test(strEmail)
Set myReg = Nothing
End Function
Eigentlich müsste man jetzt noch auf mehrere Punkte (.) prüfen, oder Umlaute, und.... ;-)
Servus
Case

Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige