加拿大邮政编码 Postal Code 格式解析
本文目录
- Postal Code 的基本结构
- 省份与首字母的对应关系
- FSA 与 LDU 的含义
- 空格为什么重要
- 开发校验的建议
加拿大的邮政编码被称为 Postal Code,它看起来很像英国 Postcode 的「字母数字交替」风格,但规则完全不同。很多人第一次见到时都会好奇:为什么不是纯数字?
Postal Code 的基本结构
加拿大邮编固定为 6 个字符,按「字母-数字-字母 / 数字-字母-数字」交替排列,中间带一个空格,例如:
K1A 0B1
第一个字母一定位于字母表前半段,并且不使用 D、F、I、O、Q、U 等字母,以避免与数字或常见易混淆字符混淆。
省份与首字母的对应关系
Postal Code 的第一个字母代表省份或地区,这是校验地址时非常实用的线索:
| 首字母 | 省份 / 地区 |
|---|---|
| K、L、M、N、P | 安大略省(Ontario) |
| G、H、J | 魁北克省(Quebec) |
| V | 不列颠哥伦比亚省(British Columbia) |
| T | 阿尔伯塔省(Alberta) |
| R | 马尼托巴省(Manitoba) |
| S | 萨斯喀彻温省(Saskatchewan) |
| B | 新斯科舍省(Nova Scotia) |
| E | 新不伦瑞克省(New Brunswick) |
| A | 纽芬兰与拉布拉多省 |
| C | 爱德华王子岛省 |
| X、Y | 西北地区、育空、努纳武特 |
所以在开发校验时,可以通过首字母快速判断用户填写的省份是否正确。
FSA 与 LDU 的含义
空格把邮编分成前后两部分:
- FSA(前三位):Forward Sortation Area,代表城市或较大的地区,例如多伦多市区的邮编以 M 开头;
- LDU(后三位):Local Delivery Unit,代表具体街道、大楼或社区。
空格为什么重要
「K1A 0B1」和「K1A0B1」在人类看来差不多,但在系统校验中可能一个通过、一个失败。加拿大的邮寄地址规范中,Postal Code 必须写成「3 字符 + 空格 + 3 字符」的格式。因此:
- 写入数据库前统一为规范格式(全部大写、带空格);
- 表单校验时先去除多余空格再按规则重组;
- 邮编与省份联动校验,提升数据质量。
开发校验的建议
在 JavaScript 中可以用如下思路校验:将输入转为大写,匹配「字母-数字-字母 数字-字母-数字」的模式,再校验首字母是否属于该省份。更严谨的方案是接入加拿大邮政(Canada Post)的地址验证接口,确保邮编与具体地址匹配。
可以在首页生成器选择「加拿大」,生成类似 K1A 0B1 格式的虚构 Postal Code,配合省份首字母规则一起练习。