Free tool · runs in your browser · no API key

Postal Code Validator
Zip Code Format by Country

Check whether a postal or ZIP code has the right format for 97 countries, and see the expected pattern, an example and the regex to use in your own forms.

Expected format: ##### or #####-#### (# = digit, @ = letter) · Example: 90210

Regex for United States

/^\d{5}(-\d{4})?$/

Trim and upper-case the input before testing it.

Postal code formats and regex by country

In the format column, # is a digit and @ is a letter; other characters are literal.

Postal code format, example and regular expression for each country
CountryFormatExampleRegex
Albania AL #### 1001^\d{4}$
Algeria DZ ##### 16000^\d{5}$
Andorra AD AD### AD500^AD\d{3}$
Argentina AR @####@@@ or #### CPA (8 characters) or the older 4-digit code.C1425BQD^([A-Z]\d{4}[A-Z]{3}|\d{4})$
Armenia AM #### 0010^\d{4}$
Australia AU #### 2000^\d{4}$
Austria AT #### 1010^[1-9]\d{3}$
Azerbaijan AZ AZ #### The AZ prefix is optional.AZ 1000^(AZ ?)?\d{4}$
Bahrain BH ### or #### 317^\d{3,4}$
Bangladesh BD #### 1000^\d{4}$
Belarus BY ###### 220030^\d{6}$
Belgium BE #### 1000^[1-9]\d{3}$
Bosnia and Herzegovina BA ##### 71000^\d{5}$
Brazil BR #####-### CEP. The hyphen is optional.01310-100^\d{5}-?\d{3}$
Bulgaria BG #### 1000^\d{4}$
Canada CA @#@ #@# The letters D, F, I, O, Q and U are never used.K1A 0B1^[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d$
Chile CL ####### 8320000^\d{3}-?\d{4}$
China CN ###### 100000^\d{6}$
Colombia CO ###### 110111^\d{6}$
Costa Rica CR ##### 10101^\d{5}$
Croatia HR ##### 10000^\d{5}$
Cyprus CY #### 1010^\d{4}$
Czechia CZ ### ## 110 00^\d{3} ?\d{2}$
Denmark DK #### 1050^\d{4}$
Dominican Republic DO ##### 10101^\d{5}$
Ecuador EC ###### 170150^\d{6}$
Egypt EG ##### 11511^\d{5}$
Estonia EE ##### 10111^\d{5}$
Ethiopia ET #### 1000^\d{4}$
Finland FI ##### 00100^\d{5}$
France FR ##### 75008^\d{5}$
Georgia GE #### 0108^\d{4}$
Germany DE ##### 10115^\d{5}$
Greece GR ### ## 105 57^\d{3} ?\d{2}$
Guatemala GT ##### 01001^\d{5}$
Hong Kong HKNo postal codes — No postal codes.
Hungary HU #### 1051^[1-9]\d{3}$
Iceland IS ### 101^\d{3}$
India IN ###### PIN code; the first digit is never 0.110001^[1-9]\d{2} ?\d{3}$
Indonesia ID ##### 10110^\d{5}$
Iran IR ########## 1193653471^\d{5}-?\d{5}$
Ireland IE @## **** Eircode: a routing key, a space, then 4 letters or digits (* = either).D02 X285^([AC-FHKNPRTV-Y]\d{2}|D6W) ?[0-9AC-FHKNPRTV-Y]{4}$
Israel IL ####### 9614303^\d{7}$
Italy IT ##### CAP.00184^\d{5}$
Japan JP ###-#### The hyphen is optional.100-0001^\d{3}-?\d{4}$
Jordan JO ##### 11118^\d{5}$
Kenya KE ##### 00100^\d{5}$
Kuwait KW ##### 13001^\d{5}$
Latvia LV LV-#### The LV- prefix is optional.LV-1050^(LV-?)?\d{4}$
Liechtenstein LI #### Shares the Swiss system (9485–9497).9490^94(8[5-9]|9[0-7])$
Lithuania LT LT-##### The LT- prefix is optional.LT-01100^(LT-?)?\d{5}$
Luxembourg LU L-#### The L- prefix is optional.L-2449^(L-?)?\d{4}$
Malaysia MY ##### 50000^\d{5}$
Malta MT @@@ #### VLT 1117^[A-Z]{3} ?\d{4}$
Mexico MX ##### 06600^\d{5}$
Moldova MD MD-#### The MD- prefix is optional.MD-2001^(MD-?)?\d{4}$
Monaco MC 980## 98000^980\d{2}$
Montenegro ME ##### 81000^\d{5}$
Morocco MA ##### 20000^\d{5}$
Nepal NP ##### 44600^\d{5}$
Netherlands NL #### @@ 1012 JS^[1-9]\d{3} ?[A-Z]{2}$
New Zealand NZ #### 6011^\d{4}$
Nigeria NG ###### 100001^\d{6}$
North Macedonia MK #### 1000^\d{4}$
Norway NO #### 0150^\d{4}$
Oman OM ### 100^\d{3}$
Pakistan PK ##### 44000^\d{5}$
Peru PE ##### 15001^\d{5}$
Philippines PH #### 1000^\d{4}$
Poland PL ##-### 00-950^\d{2}-\d{3}$
Portugal PT ####-### 1100-148^\d{4}-\d{3}$
Puerto Rico PR ##### or #####-#### US ZIP codes starting with 006, 007 or 009.00901^00[679]\d{2}(-\d{4})?$
Qatar QANo postal codes — No postal codes; addresses use a P.O. Box.
Romania RO ###### 010011^\d{6}$
Russia RU ###### 101000^\d{6}$
Saudi Arabia SA ##### or #####-#### 11564^\d{5}(-\d{4})?$
Senegal SN ##### 12500^\d{5}$
Serbia RS ##### 11000^\d{5}$
Singapore SG ###### 238859^\d{6}$
Slovakia SK ### ## 811 01^\d{3} ?\d{2}$
Slovenia SI #### An SI- prefix is sometimes used.1000^(SI-?)?\d{4}$
South Africa ZA #### 0001^\d{4}$
South Korea KR ##### 5-digit code in use since 2015.03187^\d{5}$
Spain ES ##### The first two digits are the province (01–52).28013^(0[1-9]|[1-4]\d|5[0-2])\d{3}$
Sri Lanka LK ##### 00100^\d{5}$
Sweden SE ### ## 111 22^[1-9]\d{2} ?\d{2}$
Switzerland CH #### 8001^[1-9]\d{3}$
Taiwan TW ### or ##### or ###### 100^\d{3}(\d{2,3})?$
Thailand TH ##### 10200^\d{5}$
Tunisia TN #### 1000^\d{4}$
Turkey TR ##### The first two digits are the province (01–81).34000^(0[1-9]|[1-7]\d|8[01])\d{3}$
Ukraine UA ##### 01001^\d{5}$
United Arab Emirates AENo postal codes — No postal codes; addresses use a P.O. Box.
United Kingdom GB @# #@@ or @## #@@ or @@# #@@ or @@## #@@ or @#@ #@@ or @@#@ #@@ Outward code, a space, then a 3-character inward code.SW1A 1AA^([A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}|GIR ?0AA)$
United States US ##### or #####-#### 5-digit ZIP or ZIP+4.90210^\d{5}(-\d{4})?$
Uruguay UY ##### 11000^\d{5}$
Venezuela VE #### 1010^\d{4}$

Validate addresses server-side

A format check tells you a code looks right, not that it exists. The /v1/places/validate endpoint checks the postal code against 500,000+ real codes, confirms it belongs to the given state and city, and suggests corrections. Paid plans start at €5/month.