ヨーロッパの顧客向けに住所フォームを構築したことがある開発者なら、誰もが真実を発見することになります。ヨーロッパ郵便番号のフォーマットは1つではない、と。各国が独自のものを持ち、その違いには実質的な意味があります。このページはEU27か国に加え、主要な非EUヨーロッパ諸国をカバーした国別リファレンスです。本番で必要なregexパターンと検証のヒントも掲載しています。
大まかな分類
ヨーロッパの郵便番号はおおよそ4つのグループに分けられます。
- 5桁数字: ドイツ、フランス、イタリア、スペイン、フィンランド、クロアチア、エストニア、ギリシャ、リトアニア、スロバキア。
- 4桁数字: ベルギー、ブルガリア、ハンガリー、オーストリア、スイス、リヒテンシュタイン、ルクセンブルク、ノルウェー、スロベニア、デンマーク。
- 英数字固定フォーマット: オランダ(4桁+2文字)、アイルランド(Eircode、7文字英数字)、マルタ(3文字+4桁)。
- 階層的英数字: イギリス(可変長、2パート)。
さらにいくつかの例外:スウェーデンは3桁目の後にスペースを挟む5桁(123 45)、ポーランドは2桁目の後にハイフンを挟む5桁(00-001)、チェコは3桁目の後にスペースを挟む5桁(110 00)を使います。
EU27か国リファレンス
| 国 | ISO | フォーマット | 例 | Regex |
|---|---|---|---|---|
| オーストリア | AT | 4桁 | 1010 | ^\d{4}$ |
| ベルギー | BE | 4桁 | 1000 | ^\d{4}$ |
| ブルガリア | BG | 4桁 | 1000 | ^\d{4}$ |
| クロアチア | HR | 5桁 | 10000 | ^\d{5}$ |
| キプロス | CY | 4桁 | 1010 | ^\d{4}$ |
| チェコ | CZ | NNN NN | 110 00 | ^\d{3} ?\d{2}$ |
| デンマーク | DK | 4桁 | 1050 | ^\d{4}$ |
| エストニア | EE | 5桁 | 10111 | ^\d{5}$ |
| フィンランド | FI | 5桁 | 00100 | ^\d{5}$ |
| フランス | FR | 5桁 | 75008 | ^\d{5}$ |
| ドイツ | DE | 5桁 | 10115 | ^\d{5}$ |
| ギリシャ | GR | NNN NN | 105 63 | ^\d{3} ?\d{2}$ |
| ハンガリー | HU | 4桁 | 1051 | ^\d{4}$ |
| アイルランド | IE | Eircode | D02 X285 | ^[A-Z]\d{2} ?[A-Z0-9]{4}$ |
| イタリア | IT | 5桁 | 00184 | ^\d{5}$ |
| ラトビア | LV | LV-NNNN | LV-1050 | ^LV-\d{4}$ |
| リトアニア | LT | LT-NNNNN | LT-01100 | ^LT-\d{5}$ |
| ルクセンブルク | LU | 4桁 | 1234 | ^\d{4}$ |
| マルタ | MT | LLL NNNN | VLT 1234 | ^[A-Z]{3} ?\d{4}$ |
| オランダ | NL | NNNN LL | 1011 AB | ^\d{4} ?[A-Z]{2}$ |
| ポーランド | PL | NN-NNN | 00-001 | ^\d{2}-\d{3}$ |
| ポルトガル | PT | NNNN-NNN | 1000-001 | ^\d{4}-\d{3}$ |
| ルーマニア | RO | 6桁 | 010001 | ^\d{6}$ |
| スロバキア | SK | NNN NN | 811 01 | ^\d{3} ?\d{2}$ |
| スロベニア | SI | 4桁 | 1000 | ^\d{4}$ |
| スペイン | ES | 5桁 | 28013 | ^\d{5}$ |
| スウェーデン | SE | NNN NN | 111 22 | ^\d{3} ?\d{2}$ |
主な非EUヨーロッパ諸国
| 国 | ISO | フォーマット | 例 | Regex |
|---|---|---|---|---|
| イギリス | GB | 階層的 | SW1A 1AA | ^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$ |
| スイス | CH | 4桁 | 8001 | ^\d{4}$ |
| ノルウェー | NO | 4桁 | 0150 | ^\d{4}$ |
| アイスランド | IS | 3桁 | 101 | ^\d{3}$ |
| リヒテンシュタイン | LI | 4桁 | 9490 | ^\d{4}$ |
UKポストコードの詳細
UKシステムはヨーロッパで最も情報密度が高いです。SW1A 1AAのようなコードは次のように分解されます。
SW: 郵便エリア(ロンドン南西)SW1A: 郵便区(St James's and Pimlico)SW1A 1: 郵便セクター(数本の通り)SW1A 1AA: 郵便ユニット(特定の配達地点、しばしば1棟の建物)
この階層構造により、UKのポストコードは建物を特定できます。そのため、UKのプロダクトではポストコードが近隣レベルや街路レベルのグルーピングの代理として使われることがよくあります。他のほぼどの国の郵便番号システムもこれをしません。
本番検証パターン
最もコストが低い本番アプローチは、上記のような国別regexテーブルを使い、住所の国コードに基づいて適用することです。国コードは以下から取得できます。
- ユーザーが選択したドロップダウン
- ユーザーのIPジオロケーション
- ジオコーダーの結果(ほとんどの本番ジオコーダーは郵便番号を正規化し、レスポンスに国コードを含めます)
国を知らずに郵便番号を検証しようとするのは避けましょう。4桁のコードは12か国で有効で、多くの国で無効です。
重要な処理フロー(チェックアウト、KYC、規制業種)では、regexだけで止まらないでください。住所をジオコーダーに送り、「屋根」または「街路」精度のレスポンスを検証として扱いましょう。regex単体での一致だけでは不十分です。正しくフォーマットされた郵便番号でも、実際の住所と一致しない場合があります。
保存と正規化
郵便番号は数値ではなく文字列として保存しましょう。先頭のゼロが重要です(01100はリトアニアの有効なコードですが、1100はそうではありません)。保存フォーマットの規則:
- データセット間での比較時は非英数字文字を取り除く。
- 出力時は国の正規形式(ハイフン、スペース、プレフィックス付き)で表示する。
- 今日のプロダクトが単一国のみを扱う場合でも、常に郵便番号と国コードを一緒に保存する。スキーマは移行なしに多国展開に対応できます。
MapAtlasのサポート
MapAtlas Geocoding APIは、すべてのサポート対象国でソースデータに対して検証された正規化済みのaddress_components.postal_codeフィールドを返します。Search APIは郵便番号を検索入力として受け入れ、マッチする場所を返します。どちらのAPIもEUホスト、GDPR準拠、国別住所パーサーを備えたOSMグレードデータで構築されています。
住所がどのように座標になるかの詳細についてはジオコードとは何かを参照してください。すべての座標レスポンスを支える経度と緯度の仕組みについては緯度と経度についてを参照してください。
よくある質問
ヨーロッパの郵便番号のフォーマットは?
単一のヨーロッパ郵便番号フォーマットは存在しません。各国が独自に定義しています。ほとんどは固定長の数字コード(ドイツ、フランス、イタリア、スペインは5桁、ベルギー、ハンガリー、オーストリア、スイスは4桁)を使いますが、英数字コードを使う国もあります。オランダは数字4桁+アルファベット2文字、イギリスは複雑な2パートの英数字システム、アイルランドは7文字の英数字Eircodeを使います。動作する住所バリデーターには、EU27か国に加え主要な非EUヨーロッパ諸国の国別パターンが必要です。
ドイツの郵便番号(Postleitzahl)とポーランドの郵便番号は同じですか?
どちらも5文字ですが構造が異なります。ドイツは連続した5桁を使います(例:10115)。ポーランドは2桁、ハイフン、3桁の形式です(例:00-001)。保存では、ポーランドはハイフン付きの正規形式、ドイツはハイフンなしで保持できます。データセット間でのマッチングでは、非英数字文字を取り除いて正規化し、表示時に国別フォーマットを再適用します。
任意のEU国の郵便番号を検証するには?
まず国を特定します(住所から、ISO 3166-1 alpha-2の国コードから、またはユーザーのジオロケーションから)。次にその国のregexパターンを適用します。国を認識した検証が本番での標準パターンです。単一のグローバルregexでは有効なコードを拒否するか、明らかに無効なコードを受け入れてしまいます。MapAtlas Geocoding APIは`address_components`で国別の正規化された郵便番号を返すため、通常はジオコーダーに検証ステップを任せることができます。
イギリスの郵便番号システムはなぜ他と異なるのですか?
UKのポストコードは、郵便エリア、区、セクター、ユニットを2パート(例:バッキンガム宮殿のSW1A 1AA)でエンコードする階層的な英数字システムを使います。ほとんどの国のシステムよりも1コードあたりに多くの空間情報を持つため、UKのポストコードは近隣や個々の街路の代理として使われることがあります。このシステムは1950〜60年代に設計され、現代のデータインフラに合わせて改修されてきました。

