Ich versuche gerade einen reg. Ausdruck für Telefonnummern zu kreieren.
Erlaubt sollen nur Telefonnummern sein, die
- mit 0 beginnen,
- deren 4. Ziffer KEINE 0 ist
- deren Gesamtanzahl an Ziffern zwischen 8-11 beträgt.
Erlaubt wären also z.B.:
06089372927
097786789
...
Leider funktioniert das mit meinem folgenden Code nicht ganz. Er prüft zwar, ob die erste und vierte Ziffer eine Null ist – so weit so gut - aber die Telefonnummer kann deutlich länger als 11 Ziffenr sein, und es wird trotzdem True zurükgegeben. Vielleicht kann mir jemand sagen, warum auch längere Telefonnummern akzeptiert werden.
Dim regEx As Object
Set regEx = New RegExp
Dim dieTreffer As Object
regEx.Pattern = "^0[0-9]{2}[1-9][0-9]{4,7}"
regEx.Global = True
regEx.IgnoreCase = True
MsgBox regEx.Test("06089372927888888") 'Gibt True zurück, wieso?
Hierbei geht es nicht um die Sinnhaftigkeit, Telefnummern nach diesem Muster zu filtern, sondern es geht allein darum, einen reg. Ausdruck umzusetzen. Es handelt sich also lediglich um eine Übung um in die Thematik reinzukommen.
Ich würde mich um Hilfe freuen. Danke!
|