Skip to main content
Форматы почтовых индексов ЕС: страновой справочник для разработчиков
Guides

Форматы почтовых индексов ЕС: страновой справочник для разработчиков

Почтовые индексы в Европе существенно различаются по длине, формату и смыслу. Справочник по 27 странам ЕС плюс Великобритания

Brent van der Heiden5 min read
#почтовые индексы#европейские почтовые индексы#валидация адресов#геокодирование#eu data#regex

Каждый разработчик, строивший форму адреса для европейских клиентов, в итоге обнаруживает правду: единого европейского формата почтового индекса не существует. У каждой страны свой, и различия действительно значимы. Эта страница — страновой справочник, охватывающий ЕС-27 плюс ключевые неевропейские страны Европы, с паттернами regex и советами по валидации для продакшна.

Общая схема

Европейские почтовые индексы делятся примерно на четыре группы:

  1. 5-значные цифровые: Германия, Франция, Италия, Испания, Финляндия, Хорватия, Эстония, Греция, Литва, Словакия.
  2. 4-значные цифровые: Бельгия, Болгария, Венгрия, Австрия, Швейцария, Лихтенштейн, Люксембург, Норвегия, Словения, Дания.
  3. Буквенно-цифровые фиксированного формата: Нидерланды (4 цифры плюс 2 буквы), Ирландия (Eircode, 7 буквенно-цифровых символов), Мальта (3 буквы плюс 4 цифры).
  4. Иерархические буквенно-цифровые: Великобритания (переменной длины, двухчастный).

Плюс несколько исключений: Швеция использует 5 цифр с пробелом после третьей (123 45), Польша — 5 цифр с дефисом после второй (00-001), Чехия — 5 цифр с пробелом после третьей (110 00).

Справочник по ЕС-27

СтранаISOФорматПримерRegex
АвстрияAT4 цифры1010^\d{4}$
БельгияBE4 цифры1000^\d{4}$
БолгарияBG4 цифры1000^\d{4}$
ХорватияHR5 цифр10000^\d{5}$
КипрCY4 цифры1010^\d{4}$
ЧехияCZNNN NN110 00^\d{3} ?\d{2}$
ДанияDK4 цифры1050^\d{4}$
ЭстонияEE5 цифр10111^\d{5}$
ФинляндияFI5 цифр00100^\d{5}$
ФранцияFR5 цифр75008^\d{5}$
ГерманияDE5 цифр10115^\d{5}$
ГрецияGRNNN NN105 63^\d{3} ?\d{2}$
ВенгрияHU4 цифры1051^\d{4}$
ИрландияIEEircodeD02 X285^[A-Z]\d{2} ?[A-Z0-9]{4}$
ИталияIT5 цифр00184^\d{5}$
ЛатвияLVLV-NNNNLV-1050^LV-\d{4}$
ЛитваLTLT-NNNNNLT-01100^LT-\d{5}$
ЛюксембургLU4 цифры1234^\d{4}$
МальтаMTLLL NNNNVLT 1234^[A-Z]{3} ?\d{4}$
НидерландыNLNNNN LL1011 AB^\d{4} ?[A-Z]{2}$
ПольшаPLNN-NNN00-001^\d{2}-\d{3}$
ПортугалияPTNNNN-NNN1000-001^\d{4}-\d{3}$
РумынияRO6 цифр010001^\d{6}$
СловакияSKNNN NN811 01^\d{3} ?\d{2}$
СловенияSI4 цифры1000^\d{4}$
ИспанияES5 цифр28013^\d{5}$
ШвецияSENNN NN111 22^\d{3} ?\d{2}$

Ключевые страны Европы за пределами ЕС

СтранаISOФорматПримерRegex
ВеликобританияGBиерархическийSW1A 1AA^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$
ШвейцарияCH4 цифры8001^\d{4}$
НорвегияNO4 цифры0150^\d{4}$
ИсландияIS3 цифры101^\d{3}$
ЛихтенштейнLI4 цифры9490^\d{4}$

Британский почтовый индекс подробнее

Британская система наиболее информационно насыщена в Европе. Код вида SW1A 1AA раскладывается на:

  • SW: почтовая зона (юго-западный Лондон)
  • SW1A: почтовый район (St James's и Пимлико)
  • SW1A 1: почтовый сектор (несколько улиц)
  • SW1A 1AA: почтовая единица (конкретная точка доставки, часто одно здание)

Эта иерархия означает, что британский почтовый индекс может идентифицировать конкретное здание — именно поэтому в британских продуктах почтовый индекс нередко используется как прокси для группировки по кварталу или даже улице. Почти ни в одной другой стране это невозможно.

Паттерны продакшн-валидации

Наиболее экономичный продакшн-подход — страноспецифичная таблица regex, подобная приведённой выше, применяемая на основе кода страны из адреса. Код страны может поступать из:

  • Явного выпадающего списка, выбранного пользователем
  • IP-геолокации пользователя
  • Результата геокодера (большинство продакшн-геокодеров нормализуют почтовый индекс и включают код страны в ответ)

Не пытайтесь валидировать почтовый индекс, не зная страну. 4-значный код валиден в 12 странах и невалиден во многих других.

Для ответственных потоков (чекаут, KYC, регулируемые отрасли) не ограничивайтесь regex. Отправьте адрес в геокодер и считайте ответом с точностью «до крыши» или «до улицы» валидацию, а не только совпадение regex. Корректно отформатированный почтовый индекс может всё равно не соответствовать реальному адресу.

Хранение и нормализация

Храните почтовые индексы как строки, а не числа. Ведущие нули важны (01100 — корректный литовский код; 1100 — нет). Соглашения о формате хранения:

  • При сравнении между наборами данных убирайте небуквенно-цифровые символы.
  • При выводе отображайте в каноническом для страны формате (с дефисами, пробелами, префиксами).
  • Всегда храните код страны рядом с почтовым индексом, даже если ваш продукт сегодня работает только в одной стране. Схема масштабируется до многостранового расширения без миграций.

Как помогает MapAtlas

Geocoding API MapAtlas возвращает нормализованное поле address_components.postal_code для каждой поддерживаемой страны, проверенное по исходным данным. Search API принимает почтовый индекс как поисковый ввод и возвращает соответствующее место. Оба API хостятся в ЕС, соответствуют требованиям GDPR и построены на данных уровня OSM с явными странозависимыми парсерами адресов.

Подробнее о том, как адреса преобразуются в координаты: Что такое геокод. О механике широты и долготы, лежащих в основе каждого координатного ответа: Широта и долгота.

Часто задаваемые вопросы

Каков формат европейских почтовых индексов?

Единого европейского формата почтового индекса не существует. Каждая страна определяет его самостоятельно. Большинство используют цифровой код фиксированной длины (5 цифр в Германии, Франции, Италии, Испании; 4 цифры в Бельгии, Венгрии, Австрии, Швейцарии), но несколько стран применяют буквенно-цифровые коды (Нидерланды: 4 цифры плюс 2 буквы; Великобритания: сложная двухчастная буквенно-цифровая система; Ирландия: Eircode из 7 буквенно-цифровых символов). Работающий валидатор адресов должен хранить паттерн для каждой страны из ЕС-27 плюс ключевых неевропейских стран Европы.

Одинаков ли немецкий почтовый индекс (Postleitzahl) с польским?

Оба состоят из пяти символов, но структура различается. Германия использует 5 последовательных цифр (например, 10115). Польша использует 2 цифры, дефис, затем 3 цифры (например, 00-001). Для хранения можно держать каноническую форму с дефисом для Польши и без него для Германии. При сопоставлении между наборами данных нормализуйте, удаляя небуквенно-цифровые символы, и повторно применяйте странозависимый формат при отображении.

Как валидировать почтовый индекс из любой страны ЕС?

Сначала определите страну (по адресу, коду страны ISO 3166-1 alpha-2 или геолокации пользователя). Затем примените паттерн regex для этой страны. Страноспецифичная валидация — стандартный продакшн-паттерн, потому что единое глобальное регулярное выражение либо отклоняло бы корректные коды, либо принимало бы явно неверные. MapAtlas Geocoding API возвращает нормализованный почтовый индекс для каждой страны в `address_components`, так что обычно можно просто доверить шаг валидации геокодеру.

Почему система почтовых индексов Великобритании выглядит так не похоже на остальные?

Британские почтовые индексы используют иерархическую буквенно-цифровую систему, кодирующую почтовую зону, район, сектор и единицу в двух частях (например, SW1A 1AA для Букингемского дворца). В каждом коде содержится больше пространственной информации, чем в большинстве других систем, поэтому британские почтовые индексы порой используются как прокси для района или даже отдельных улиц. Система была разработана в 1950-1960-е годы и с тех пор встраивается в современную информационную инфраструктуру.

Оказалось полезным? Поделитесь.

Об авторе

Brent van der Heiden

Автор

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. He writes about geospatial infrastructure, AI search visibility, and how location data powers the products people rely on every day.

Все статьи
Вернуться в блог