|
Tipp 0279
|
E-Mail-Adressen auf Gültigkeit prüfen
|
|
|
Autor/Einsender: Datum: |
|
Detlev Schubert 20.10.2002/01.12.2005 |
|
Entwicklungsumgebung: |
|
VB 6 |
|
|
Zunehmend setzt sich durch, dass kein Formular mehr ohne E-Mail-Adresse ist. Was im Internet möglich ist, lässt sich auch mit Visual Basic realisieren. Hierzu muss lediglich ein Verweis (siehe
Verweise und Komponenten
einbinden) auf die Microsoft VBScript Regular Expressions Bibliothek gesetzt werden, um das RegExp-Objekt nutzen zu können.
|
Mit diesem Objekt, das auch bei der ASP- und Script-Programmierung eingesetzt werden kann, ist es
u.a. möglich, eine eingegebene E-Mail-Adresse auf ihre Gültigkeit (regulärer Ausdruck) zu prüfen.
|
Das RegExp-Objekt lässt sich vielfältig einsetzen, wie z.B. auch zur Gültigkeitsprüfung von Postleitzahlen, Telefonnummern usw., um Textteile zu vergleichen, zu ersetzen oder auch zu entfernen.
|
Update zum 01.12.2005
|
Im alten Beispiel war der Pattern nicht ganz korrekt. Durch die
Verwendung von "\w" wurde auch der Underscore (ASCII 95) akzeptiert. Der ist
jedoch in Mailadressen nicht zulässig.
|
|
|
Option Explicit
Dim myReg As RegExp
Private Sub cmdEmail_Click()
TestEmail txtEmail.Text
End Sub
Private Function TestEmail(ByVal vstrEmail As String)
Dim blnTest As Boolean
Set myReg = New RegExp
myReg.Pattern = _
"^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
myReg.IgnoreCase = True
blnTest = myReg.Test(vstrEmail)
If blnTest = True Then
MsgBox "E-Mail-Adresse ist gültig.", vbOKOnly, "eMail-Test"
Else
MsgBox "E-Mail-Adresse ist ungültig!", vbOKOnly + vbCritical, _
"eMail-Test"
End If
txtEmail.SetFocus
Set myReg = Nothing
End Function
|
|
|
|
|
|
Um diesen Tipp ausführen zu können, die Bibliothek
Microsoft VBScript Regular Expressions als Verweis in das Projekt
eingebunden werden.
|
|
Windows-Version |
95 |
|
|
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
VB-Version |
VBA 5 |
|
|
VBA 6 |
|
|
VB 4/16 |
|
|
VB 4/32 |
|
|
VB 5 |
|
|
VB 6 |
|
|
|
|
Download (2,7
kB)
|
Downloads bisher: [ 1417 ]
|
|
|