Wer ein Adressformular für europäische Kunden baut, stellt früher oder später fest: Ein europäisches Postleitzahlenformat gibt es nicht. Jedes Land hat sein eigenes, und die Unterschiede sind wichtig. Diese Seite ist eine Übersicht nach Ländern für die 27 EU-Staaten und die wichtigsten europäischen Länder außerhalb der EU, mit den regulären Ausdrücken und Prüfhinweisen, die Sie im Betrieb brauchen.
Das grobe Muster
Europäische Postleitzahlen lassen sich grob in vier Gruppen einteilen:
- 5 Ziffern: Deutschland, Frankreich, Italien, Spanien, Finnland, Kroatien, Estland, Griechenland, Litauen, Slowakei.
- 4 Ziffern: Belgien, Bulgarien, Ungarn, Österreich, Schweiz, Liechtenstein, Luxemburg, Norwegen, Slowenien, Dänemark.
- Buchstaben und Ziffern in festem Format: Niederlande (4 Ziffern plus 2 Buchstaben), Irland (Eircode, 7 Zeichen), Malta (3 Buchstaben plus 4 Ziffern).
- Hierarchisch aus Buchstaben und Ziffern: Vereinigtes Königreich (zweiteilig, unterschiedlich lang).
Dazu kommen einige Ausreißer: Schweden nutzt 5 Ziffern mit einem Leerzeichen nach der dritten (123 45), Polen 5 Ziffern mit einem Bindestrich nach der zweiten (00-001), Tschechien 5 Ziffern mit einem Leerzeichen nach der dritten (110 00).
Die EU-27-Referenz
| Land | ISO | Format | Beispiel | Regex |
|---|---|---|---|---|
| Österreich | AT | 4 Ziffern | 1010 | ^\d{4}$ |
| Belgien | BE | 4 Ziffern | 1000 | ^\d{4}$ |
| Bulgarien | BG | 4 Ziffern | 1000 | ^\d{4}$ |
| Kroatien | HR | 5 Ziffern | 10000 | ^\d{5}$ |
| Zypern | CY | 4 Ziffern | 1010 | ^\d{4}$ |
| Tschechien | CZ | NNN NN | 110 00 | ^\d{3} ?\d{2}$ |
| Dänemark | DK | 4 Ziffern | 1050 | ^\d{4}$ |
| Estland | EE | 5 Ziffern | 10111 | ^\d{5}$ |
| Finnland | FI | 5 Ziffern | 00100 | ^\d{5}$ |
| Frankreich | FR | 5 Ziffern | 75008 | ^\d{5}$ |
| Deutschland | DE | 5 Ziffern | 10115 | ^\d{5}$ |
| Griechenland | GR | NNN NN | 105 63 | ^\d{3} ?\d{2}$ |
| Ungarn | HU | 4 Ziffern | 1051 | ^\d{4}$ |
| Irland | IE | Eircode | D02 X285 | ^[A-Z]\d[\dW] ?[A-Z0-9]{4}$ |
| Italien | IT | 5 Ziffern | 00184 | ^\d{5}$ |
| Lettland | LV | LV-NNNN | LV-1050 | ^LV-\d{4}$ |
| Litauen | LT | LT-NNNNN | LT-01100 | ^LT-\d{5}$ |
| Luxemburg | LU | 4 Ziffern | 1234 | ^\d{4}$ |
| Malta | MT | LLL NNNN | VLT 1234 | ^[A-Z]{3} ?\d{4}$ |
| Niederlande | NL | NNNN LL | 1011 AB | ^\d{4} ?[A-Z]{2}$ |
| Polen | PL | NN-NNN | 00-001 | ^\d{2}-\d{3}$ |
| Portugal | PT | NNNN-NNN | 1000-001 | ^\d{4}-\d{3}$ |
| Rumänien | RO | 6 Ziffern | 010001 | ^\d{6}$ |
| Slowakei | SK | NNN NN | 811 01 | ^\d{3} ?\d{2}$ |
| Slowenien | SI | 4 Ziffern | 1000 | ^\d{4}$ |
| Spanien | ES | 5 Ziffern | 28013 | ^\d{5}$ |
| Schweden | SE | NNN NN | 111 22 | ^\d{3} ?\d{2}$ |
Wichtige europäische Länder außerhalb der EU
| Land | ISO | Format | Beispiel | Regex |
|---|---|---|---|---|
| Vereinigtes Königreich | GB | hierarchisch | SW1A 1AA | ^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$ |
| Schweiz | CH | 4 Ziffern | 8001 | ^\d{4}$ |
| Norwegen | NO | 4 Ziffern | 0150 | ^\d{4}$ |
| Island | IS | 3 Ziffern | 101 | ^\d{3}$ |
| Liechtenstein | LI | 4 Ziffern | 9490 | ^\d{4}$ |
Der britische Postcode im Detail
Das britische System steckt mehr Hierarchie in einen Code als die meisten Systeme in Europa. Ein Code wie SW1A 1AA zerfällt in:
SW: Postgebiet (London South West)SW1A: Postbezirk (Whitehall, Westminster und St. James's)SW1A 1: Postsektor (einige Straßen)SW1A 1AA: Zustelleinheit (ein bestimmter Zustellpunkt, oft ein einzelnes Gebäude)
Wegen dieser Hierarchie kann ein britischer Postcode ein einzelnes Gebäude bezeichnen. Britische Produkte nutzen den Postcode deshalb oft, um Daten nach Stadtteil oder sogar nach Straße zu gruppieren. Der irische Eircode geht noch weiter und gibt jeder einzelnen Adresse einen eigenen Code.
Postleitzahlen im Betrieb prüfen
Am günstigsten ist eine Tabelle mit einem regulären Ausdruck pro Land wie die obige, die Sie anhand des Ländercodes der Adresse anwenden. Den Ländercode bekommen Sie:
- aus einer Auswahlliste, in der der Nutzer das Land gewählt hat
- aus dem Standort des Nutzers, ermittelt über die IP-Adresse
- aus dem Ergebnis des Geocoders (die meisten Geocoder im Betrieb normalisieren die Postleitzahl und liefern den Ländercode in der Antwort mit)
Prüfen Sie keine Postleitzahl, ohne das Land zu kennen. Ein vierstelliger Code ist in Dutzenden Ländern gültig und in noch mehr Ländern ungültig.
Bei kritischen Abläufen (Checkout, KYC, regulierte Branchen) reicht ein regulärer Ausdruck nicht. Schicken Sie die Adresse an einen Geocoder und werten Sie eine Antwort mit der Präzision „rooftop“ oder „street“ als Bestätigung, nicht allein den passenden Ausdruck. Auch eine korrekt formatierte Postleitzahl muss nicht zu einer echten Adresse gehören.
Speichern und normalisieren
Speichern Sie Postleitzahlen als Zeichenketten, nicht als Zahlen. Führende Nullen zählen (01100 ist ein gültiger litauischer Code, 1100 nicht). Für das Speicherformat gilt:
- Entfernen Sie für den Vergleich zwischen Datensätzen alle Zeichen außer Buchstaben und Ziffern.
- Zeigen Sie die Postleitzahl in der amtlichen Form des Landes an (mit Bindestrichen, Leerzeichen und Präfixen).
- Speichern Sie den Ländercode immer zusammen mit der Postleitzahl, auch wenn Ihr Produkt heute nur in einem Land läuft. So wächst das Schema später ohne Migration auf weitere Länder mit.
Wie MapAtlas hilft
Die MapAtlas Geocoding API gibt für jedes unterstützte Land ein normalisiertes Feld address_components.postal_code zurück, geprüft gegen die Quelldaten. Die Search API nimmt eine Postleitzahl als Suchbegriff an und gibt den passenden Ort zurück. Beide APIs laufen in der EU, sind DSGVO-konform und beruhen auf Daten in OSM-Qualität mit eigenen Adressparsern für jedes Land.
Wie aus Adressen Koordinaten werden, erklärt Was ist ein Geocode?. Die Grundlagen von Breiten- und Längengrad hinter jeder Koordinate erklärt Längengrad und Breitengrad.
Häufig gestellte Fragen
Welches Format haben europäische Postleitzahlen?
Ein einheitliches europäisches Format gibt es nicht, jedes Land legt sein eigenes fest. Die meisten nutzen einen Zifferncode fester Länge (5 Stellen in Deutschland, Frankreich, Italien und Spanien, 4 Stellen in Belgien, Ungarn, Österreich und der Schweiz). Mehrere Länder verwenden aber Codes aus Buchstaben und Ziffern: die Niederlande 4 Ziffern plus 2 Buchstaben, das Vereinigte Königreich ein komplexes zweiteiliges System, Irland den Eircode mit 7 Zeichen. Ein brauchbarer Adressvalidator braucht deshalb ein eigenes Muster für jeden der 27 EU-Staaten und für die wichtigsten europäischen Länder außerhalb der EU.
Ist eine deutsche Postleitzahl genauso aufgebaut wie eine polnische?
Beide bestehen aus fünf Ziffern, sind aber unterschiedlich aufgebaut. Deutschland nutzt 5 Ziffern ohne Trennzeichen (zum Beispiel 10115). Polen nutzt 2 Ziffern, einen Bindestrich und 3 Ziffern (zum Beispiel 00-001). Speichern Sie jeweils die amtliche Form, für Polen mit Bindestrich, für Deutschland ohne. Für den Abgleich zwischen Datensätzen normalisieren Sie: Entfernen Sie alle Zeichen außer Buchstaben und Ziffern und wenden Sie bei der Anzeige wieder das Format des Landes an.
Wie validiere ich eine Postleitzahl aus einem beliebigen EU-Land?
Bestimmen Sie zuerst das Land (aus der Adresse, einem Ländercode nach ISO 3166-1 alpha-2 oder dem Standort des Nutzers). Wenden Sie dann den regulären Ausdruck dieses Landes an. Im Betrieb ist die Prüfung pro Land der übliche Weg, denn ein einziger globaler Ausdruck lehnt entweder gültige Codes ab oder lässt offensichtlich ungültige durch. Die MapAtlas Geocoding API gibt in `address_components` eine normalisierte Postleitzahl pro Land zurück. Meist überlassen Sie die Prüfung deshalb dem Geocoder.
Warum sieht das britische Postleitzahlsystem so anders aus?
Britische Postcodes folgen einem hierarchischen System aus Buchstaben und Ziffern. Es enthält in zwei Teilen das Postgebiet, den Bezirk, den Sektor und die Zustelleinheit (zum Beispiel SW1A 1AA für den Buckingham Palace). Ein Code trägt damit mehr räumliche Information als in den meisten anderen Ländern. Deshalb dienen britische Postcodes manchmal als Ersatz für Stadtteile oder sogar einzelne Straßen. Das System entstand in den 1950er und 1960er Jahren und wurde seitdem nach und nach in moderne Dateninfrastruktur eingebaut.

