Regulärer Ausdruck für Deutsche Postleitzahlen

Es ist doch zum aus der Haut fahren. Sucht man im Internet nach einem regulären Ausdruck zum validieren deutscher Postleitzahlen, findet man immer nur folgenden Ausdruck:

/[0-9]{5}/

Was will der uns sagen? Prüfe ob die Zahlen von 0 bis 9 fünf Mal vorhanden sind.

Hm. Bei einer Postleitzahl von 01277 ist das in Ordnung. Aber was ist mit 00101? Gibt es diese PLZ? Oder die 00000? Nein, natürlich nicht. Deshalb sind die regulären Ausdrücke im Internet falsch. Für die schnelle Kontrolle zwischendurch in Ordnung, aber wenn man wirklich darauf angewiesen ist, untragbar. Also habe ich mich hingesetzt und selbst einen regulären Ausdruck zusammen gebastelt. Und das ist dabei raus gekommen:

/^([0]{1}[1-9]{1}|[1-9]{1}[0-9]{1})[0-9]{3}$/

Fängt die PLZ mit einer 0 an und hat als zweite Stelle eine 1 bis 9 oder fängt sie mit einer 1 bis 9 an und hat dann eine 0 bis 9 und die restlichen drei Stellen ebenfalls eine 0 bis 9, ist alles in Ordnung. Sonst ist es keine PLZ. Und damit steht zumindest an dieser Stelle des WWW ein regulärer Ausdruck, der zwar nicht prüft ob die PLZ wirklich existiert, aber wenigstens, ob sie ein relativ gültiges Format hat.

Natürlich bin ich an Lösungen, die eine genauere Untersuchung erlauben, interessiert.

3 Kommentare

  1. Anonymous

    Dankeschön 🙂

  2. snoer

    jo! vielen dank 🙂

  3. Anonymous

    perfekt!

Kommentare sind geschlossen.