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 Gedanken zu „Regulärer Ausdruck für Deutsche Postleitzahlen

  • 25. Mai 2010 um 18:51
    Permalink

    Dankeschön 🙂

  • 7. Mai 2011 um 0:01
    Permalink

    jo! vielen dank 🙂

  • 6. Februar 2012 um 12:01
    Permalink

    perfekt!

Kommentare sind geschlossen.