邮政编码正则表达式(各国邮编格式)
复制经过测试的美国(ZIP+4)、加拿大、英国、德国、日本、韩国、印度等 35 种邮政编码正则表达式,也可以判断一个邮编符合哪个国家的格式。
ZIP 或 ZIP+4(USPS);+4 部分用连字符隔开(空格也可接受)。
匹配只说明邮编格式正确,是否真实存在需要查询邮政运营商的数据库。
| 行 | 代码 | 结果 | 原因 |
|---|---|---|---|
| 1 | 90210 | 匹配 | |
| 2 | 90210-1234 | 匹配 | |
| 3 | 9021 | 不匹配 | 改为符合澳大利亚、瑞士、奥地利、比利时 |
| 4 | 90210 1234 | 匹配 | |
| 5 | 12345-123 | 不匹配 | 改为符合巴西 |
| 6 | SW1A 1AA | 不匹配 | 改为符合英国 |
各国邮政编码完全不同:美国是五位数字(或 ZIP+4),加拿大是字母-数字-字母格式,英国是不规则的外部/内部代码,荷兰是 4 位数字加 2 个字母,韩国自 2015 年起使用五位数字。这个工具为 35 种格式分别提供经过测试的正则表达式,附带 JavaScript、PHP、Python、Java、C# 或 HTML pattern 属性的代码,可以检查一组邮编,还能告诉你一个邮编符合哪些国家。
使用方法
- 选择国家(选“以上全部”可识别邮编)。
- 选择语言,以及是否接受小写字母。
- 粘贴要检查的邮编,每行一个。
- 复制正则表达式或代码片段。
计算公式
美国:[0-9]{5}(?:[ -][0-9]{4})? · 加拿大:[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9](字母受限) · 英国:外部代码 ?[0-9][A-Z]{2}
表达式遵循邮政运营商公布的格式和 Google 的地址元数据(libaddressinput),并包含有文档说明的字母限制:加拿大从不使用 D、F、I、O、Q、U;荷兰邮编不以 SA、SD、SS 结尾;西班牙邮编以 01–52 的省份编号开头;印度 PIN 不以 0 开头。输入值会去掉首尾空格,内部的空格只能是一个。表达式只检查格式:99999 是格式正确但并不存在的美国 ZIP。
示例
选择美国时,示例有 3 个匹配:90210、90210-1234 和 90210 1234。9021 只有四位,12345-123 的扩展部分有三位,SW1A 1AA 是英国邮编——测试器也会这样提示。切换到英国后,SW1A 1AA、W1A 0AX 和 DN55 1PT 都匹配,而 SW1A 1A 不完整。
常见问题
到底要不要校验邮编?
只做宽松校验,并且只在你知道国家时才做。对错误的国家使用严格表达式,会把真实的客户拒之门外;许多商店接受任意文本,再交给承运商核对。
英国的表达式为什么这么长?
英国邮编的外部代码有六种形式(A9、A99、AA9、AA99、A9A、AA9A),后面跟一个数字和两个字母。表达式列出了所有这些形式,并排除了在某些位置不使用的字母。
2015 年韩国发生了什么变化?
韩国邮政在 2015 年 8 月 1 日把六位邮编(如 110-760)改成了五位的国家基础区域编号。这里两种表达式都有。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/zip-code-regex-tool/
引用此工具
kakaoCalc. (2026, November 8). 邮政编码正则表达式(各国邮编格式). https://kakao.mobile/zh/tools/zip-code-regex-tool/
“邮政编码正则表达式(各国邮编格式).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/zip-code-regex-tool/.