Zurück zur Homepage

Plausibilitätsprüfung von E-Mailadressen

Die EMail Adressen sollen auf folgende Kriterien überprüft werden
- Ein einmaliges Vorhandensein von @
- Das Vorhandensein einer Domain am Ende
- Verbote Zeichen dürfen nicht vorkommen

Die Funktionalität von RegExp steckt in der ActiveX Komponente VBSCRIPT.DLL, die auf nahezu jedem Rechner vorhanden sein dürfte. Möglicherweise muss diese erst mit regsvr32.exe registriert werden.

 

Sub test()
MsgBox MailadresseIO(
"Schwimmer@t-online.xy")
End Sub

Public Function MailadresseIO(Adresse As StringAs Boolean
Dim oVScriptRegEx As Object
Set oVScriptRegEx = CreateObject("VBScript.RegExp")
With oVScriptRegEx
   .Pattern = 
"^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.(de|com)+$"
'   .Pattern = "^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$"
    MailadresseIO = .test(Adresse)
End With
End Function


'^    Beginn der Zeichenkette
'\w   Von a bis z, A bis Z, 0 bis 9 und Unterstrich 
'+    Vorheriges Zeichen muss einmal oder mehrmals da sein

'-    Bindestrich darf vorkommen
'\w   Von a bis z, A bis Z, 0 bis 9 und Unterstrich 
'+    Vorheriges Zeichen muss einmal oder mehrmals da sein
'|    Oder
'\.   Punkt darf vorkommen
'\w   Von a bis z, A bis Z, 0 bis 9 und Unterstrich 
'+    Vorheriges Zeichen muss einmal oder mehrmals da sein
'*    (-\w oder .\w) darf gar nicht bis beliebig oft vorkommen.

'@    Muss dort vorkommen

'\w   Von a bis z, A bis Z, 0 bis 9 und Unterstrich 
'+    Vorheriges Zeichen muss einmal oder mehrmals da sein

'(\.|-) Punkt oder Bindestrich darf voekommen
'\w   Von a bis z, A bis Z, 0 bis 9 und Unterstrich 
'+    Vorheriges Zeichen muss einmal oder mehrmals da sein
'*    (.\w oder -\w) darf gar nicht bis beliebig oft vorkommen.

'\.   Punkt muss vorkommen
'\w   Von a bis z, A bis Z, 0 bis 9 und Unterstrich 
'+    Vorheriges Zeichen muss einmal oder mehrmals da sein
'?    Und zwar vor dem Ende der Zeichenkette

'Alternativ

'\.   Punkt muss vorkommen
'(de|com)   de oder com
'+    Vorheriges Zeichen muss einmal oder mehrmals da sein
'?    Und zwar vor dem Ende der Zeichenkette