Skip to main content
فرمت‌های کد پستی اروپا: مرجع کشور به کشور برای توسعه‌دهندگان
Guides

فرمت‌های کد پستی اروپا: مرجع کشور به کشور برای توسعه‌دهندگان

کدهای پستی اروپایی از نظر طول، فرمت و معنا بسیار متفاوت هستند. این راهنما مرجعی کشور به کشور برای ۲۷ کشور عضو اتحادیه اروپا با الگوهای regex و راهنمایی‌های اعتبارسنجی

Brent van der Heiden6 min read
#کد پستی#کدهای پستی اروپا#اعتبارسنجی آدرس#geocoding#eu data#regex

هر توسعه‌دهنده‌ای که یک فرم آدرس برای مشتریان اروپایی ساخته است در نهایت حقیقت را کشف می‌کند: هیچ فرمت کد پستی اروپایی وجود ندارد. هر کشور فرمت خود را دارد و تفاوت‌ها واقعاً معنادار هستند. این صفحه یک مرجع کشور به کشور است که EU-27 به‌علاوه کشورهای کلیدی غیراروپایی را پوشش می‌دهد، با الگوهای regex و راهنمایی‌های اعتبارسنجی که در محیط production نیاز دارید.

الگوی سطح بالا

کدهای پستی اروپایی به تقریباً چهار گروه تقسیم می‌شوند:

  1. عددی ۵ رقمی: آلمان، فرانسه، ایتالیا، اسپانیا، فنلاند، کرواسی، استونی، یونان، لیتوانی، اسلواکی.
  2. عددی ۴ رقمی: بلژیک، بلغارستان، مجارستان، اتریش، سوئیس، لیختن‌اشتاین، لوکزامبورگ، نروژ، اسلوونی، دانمارک.
  3. الفبایی-عددی، فرمت ثابت: هلند (۴ رقم به‌علاوه ۲ حرف)، ایرلند (Eircode، ۷ کاراکتر الفبایی-عددی)، مالت (۳ حرف به‌علاوه ۴ رقم).
  4. الفبایی-عددی سلسله‌مراتبی: انگلستان (طول متغیر، دوبخشی).

به‌علاوه چند استثنا: سوئد از ۵ رقم با یک فاصله بعد از سوم استفاده می‌کند (123 45)، لهستان از ۵ رقم با یک خط تیره بعد از دوم (00-001)، چکیه از ۵ رقم با یک فاصله بعد از سوم (110 00).

مرجع EU-27

کشورISOفرمتمثالRegex
اتریشAT۴ رقم1010^\d{4}$
بلژیکBE۴ رقم1000^\d{4}$
بلغارستانBG۴ رقم1000^\d{4}$
کرواسیHR۵ رقم10000^\d{5}$
قبرسCY۴ رقم1010^\d{4}$
چکیهCZNNN NN110 00^\d{3} ?\d{2}$
دانمارکDK۴ رقم1050^\d{4}$
استونیEE۵ رقم10111^\d{5}$
فنلاندFI۵ رقم00100^\d{5}$
فرانسهFR۵ رقم75008^\d{5}$
آلمانDE۵ رقم10115^\d{5}$
یونانGRNNN NN105 63^\d{3} ?\d{2}$
مجارستانHU۴ رقم1051^\d{4}$
ایرلندIEEircodeD02 X285^[A-Z]\d{2} ?[A-Z0-9]{4}$
ایتالیاIT۵ رقم00184^\d{5}$
لتونیLVLV-NNNNLV-1050^LV-\d{4}$
لیتوانیLTLT-NNNNNLT-01100^LT-\d{5}$
لوکزامبورگLU۴ رقم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}$
رومانیRO۶ رقم010001^\d{6}$
اسلواکیSKNNN NN811 01^\d{3} ?\d{2}$
اسلوونیSI۴ رقم1000^\d{4}$
اسپانیاES۵ رقم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}$
سوئیسCH۴ رقم8001^\d{4}$
نروژNO۴ رقم0150^\d{4}$
ایسلندIS۳ رقم101^\d{3}$
لیختن‌اشتاینLI۴ رقم9490^\d{4}$

کد پستی انگلستان به تفصیل

سیستم انگلستان متراکم‌ترین اطلاعات را در اروپا دارد. یک کد مثل SW1A 1AA به این اجزا تجزیه می‌شود:

  • SW: ناحیه پستی (لندن جنوب غربی)
  • SW1A: منطقه پستی (St James's و Pimlico)
  • SW1A 1: بخش پستی (چند خیابان)
  • SW1A 1AA: واحد پستی (نقطه تحویل خاص، اغلب یک ساختمان)

این سلسله‌مراتب یعنی یک کد پستی انگلیسی می‌تواند یک ساختمان را شناسایی کند، به همین دلیل محصولات انگلیسی اغلب از کد پستی به عنوان یک proxy برای گروه‌بندی سطح محله یا حتی سطح خیابان استفاده می‌کنند. تقریباً هیچ سیستم کد پستی کشور دیگری این کار را نمی‌کند.

الگوهای اعتبارسنجی Production

ارزان‌ترین رویکرد production یک جدول regex مخصوص هر کشور مثل جدول بالاست که بر اساس یک کد کشور از آدرس اعمال می‌شود. کد کشور می‌تواند از اینجا بیاید:

  • یک dropdown که کاربر صریحاً انتخاب کرده
  • IP geolocation کاربر
  • نتیجه geocoder (اکثر geocoderهای production کد پستی را نرمال‌سازی می‌کنند و کد کشور را در پاسخ شامل می‌کنند)

از تلاش برای اعتبارسنجی کد پستی بدون دانستن کشور خودداری کنید. یک کد ۴ رقمی در ۱۲ کشور معتبر و در بسیاری دیگر نامعتبر است.

برای جریان‌های پرخطر (checkout، KYC، صنایع تحت نظارت)، در regex متوقف نشوید. آدرس را به یک geocoder بفرستید و یک پاسخ با دقت "rooftop" یا "street" را به عنوان اعتبارسنجی، نه فقط تطابق regex، در نظر بگیرید. یک کد پستی با فرمت صحیح هنوز می‌تواند با یک آدرس واقعی مطابقت نداشته باشد.

ذخیره‌سازی و نرمال‌سازی

کدهای پستی را به صورت رشته ذخیره کنید، نه عدد. صفرهای پیشرو مهم هستند (01100 یک کد لیتوانیایی معتبر است؛ 1100 نیست). قراردادهای فرمت ذخیره‌سازی:

  • برای مقایسه در سراسر مجموعه داده‌ها، کاراکترهای غیرالفبایی-عددی را حذف کنید.
  • در خروجی در فرمت canonical کشور (با خط تیره، فاصله، پیشوند) نمایش دهید.
  • همیشه کد کشور را در کنار کد پستی ذخیره کنید، حتی اگر محصول شما امروز فقط در یک کشور فعالیت کند. Schema به گسترش چندکشوری بدون migration مقیاس می‌شود.

چطور MapAtlas کمک می‌کند

Geocoding API MapAtlas یک فیلد address_components.postal_code نرمال‌شده برای هر کشور پشتیبانی‌شده، اعتبارسنجی‌شده در برابر داده‌های منبع، برمی‌گرداند. Search API یک کد پستی را به عنوان ورودی جستجو می‌پذیرد و مکان مطابق را برمی‌گرداند. هر دو API در EU میزبانی شده‌اند، با GDPR سازگار هستند و روی داده‌های OSM با parser های آدرس مخصوص هر کشور ساخته شده‌اند.

برای بررسی عمیق‌تر نحوه تبدیل آدرس‌ها به مختصات، What Is a Geocode را ببینید. برای مکانیک طول جغرافیایی و عرض جغرافیایی پشت هر پاسخ مختصات، Longitude vs Latitude را ببینید.

سوالات متداول

فرمت کدهای پستی اروپایی چیست؟

هیچ فرمت کد پستی یکپارچه اروپایی وجود ندارد. هر کشور فرمت خاص خود را تعریف می‌کند. اکثر از یک کد عددی با طول ثابت استفاده می‌کنند (۵ رقم در آلمان، فرانسه، ایتالیا، اسپانیا؛ ۴ رقم در بلژیک، مجارستان، اتریش، سوئیس)، اما چندتایی از کدهای الفبایی-عددی استفاده می‌کنند (هلند ۴ رقم به‌علاوه ۲ حرف، انگلستان یک سیستم الفبایی-عددی دوبخشی پیچیده، ایرلند Eircode با ۷ کاراکتر الفبایی-عددی). یک اعتبارسنج آدرس کارآمد باید یک pattern مخصوص هر کشور برای EU-27 به‌علاوه کشورهای کلیدی غیراروپایی داشته باشد.

آیا کد پستی آلمانی (Postleitzahl) مثل کد پستی لهستانی است؟

هر دو پنج کاراکتر هستند اما ساختار متفاوت است. آلمان از ۵ رقم پیوسته استفاده می‌کند (مثلاً 10115). لهستان از ۲ رقم، یک خط تیره و سپس ۳ رقم (مثلاً 00-001) استفاده می‌کند. برای ذخیره‌سازی، می‌توانید فرم canonical با خط تیره برای لهستان و بدون خط تیره برای آلمان را نگه دارید. برای مطابقت در سراسر مجموعه داده‌ها، با حذف کاراکترهای غیرالفبایی-عددی نرمال‌سازی کنید و در نمایش فرمت مخصوص کشور را مجدداً اعمال کنید.

چطور یک کد پستی از هر کشور اروپایی اعتبارسنجی کنم؟

ابتدا کشور را شناسایی کنید (از آدرس، یک کد کشور ISO 3166-1 alpha-2، یا geolocation کاربر). سپس الگوی regex آن کشور را اعمال کنید. اعتبارسنجی آگاه به کشور الگوی استاندارد production است، چون یک regex جهانی واحد یا کدهای معتبر را رد می‌کند یا کدهای آشکارا نامعتبر را می‌پذیرد. MapAtlas Geocoding API یک کد پستی نرمال‌شده در هر کشور در `address_components` خود برمی‌گرداند، بنابراین معمولاً اجازه می‌دهید geocoder مرحله اعتبارسنجی را برای شما انجام دهد.

چرا سیستم کد پستی انگلستان این‌قدر متفاوت به نظر می‌رسد؟

کدهای پستی انگلستان از یک سیستم الفبایی-عددی سلسله‌مراتبی استفاده می‌کنند که ناحیه پستی، منطقه، بخش و واحد را در دو قسمت encode می‌کند (مثلاً SW1A 1AA برای کاخ باکینگهام). اطلاعات spatial بیشتری در هر کد نسبت به اکثر سیستم‌های کشوری حمل می‌کند، به همین دلیل کدهای پستی انگلستان گاهی به عنوان یک proxy برای محله یا حتی خیابان‌های جداگانه استفاده می‌شوند.

این مفید بود؟ آن را به اشتراک بگذارید.

درباره نویسنده

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.

مشاهده همه مقالات
بازگشت به وبلاگ