USPS 美国邮编结构详解:5位基本格式与ZIP+4扩展
USPS 美国邮编结构详解
美国邮编 (United States Postal Code) 由 USPS (United States Postal Service) 统一管理,是地址系统中最关键的字段之一。
邮编基本格式
美国邮编采用 5位数字 的基本格式,例如 `10001`、`90210`。
| 部分 | 含义 |
|---|---|
| 第 1 位 | 国家代码区域:0-9 (0-2 为东北部) |
| 第 2-3 位 | 区域分区 (Sectional Center Facility) |
| 第 4-5 位 | 邮局或投递区域 (Post Office) |
例如邮编 `10001`:
ZIP+4 扩展格式
ZIP+4 在 5 位邮编后加 4 位扩展码,例如 `10001-1234`。
| 扩展位 | 含义 |
|---|---|
| 1-2 位 | 投递段 (Sector) |
| 3-4 位 | 分段 (Segment) |
ZIP+4 适用于:
邮编地理分布规律
| 邮编起始 | 地区 | 范围 |
|---|---|---|
| 0xxx | 康涅狄格、马萨诸塞、缅因等东北部 | 00501 - 04992 |
| 1xxx | 纽约、宾夕法尼亚、新泽西 | 10001 - 19640 |
| 2xxx | 中大西洋地区 | 20001 - 21930 |
| 3xxx | 东南部 (佛罗里达、佐治亚等) | 30002 - 34997 |
| 4xxx | 中西部 (肯塔基、俄亥俄等) | 40003 - 47997 |
| 5xxx | 中北部 (明尼苏达、艾奥瓦等) | 50001 - 59937 |
| 6xxx | 中西部 (堪萨斯、密苏里等) | 60001 - 68198 |
| 7xxx | 中南部 (德克萨斯、路易斯安那等) | 70001 - 79999 |
| 8xxx | 西部山区 (科罗拉多、亚利桑那等) | 80001 - 89499 |
| 9xxx | 西海岸 (华盛顿、俄勒冈、加州) | 90001 - 99999 |
邮编在数据库中的存储
```sql
CREATE TABLE addresses (
id INT PRIMARY KEY,
street VARCHAR(200),
city VARCHAR(100),
state_code CHAR(2),
zip_code CHAR(5),
zip_plus4 CHAR(4),
country_code CHAR(2) DEFAULT 'US'
);
-- 邮编索引(提高查询性能)
CREATE INDEX idx_zip ON addresses(zip_code);
```
邮编校验方法
正则校验
```javascript
// 5位邮编
const zipRegex5 = /^\d{5}$/;
// ZIP+4
const zipRegex9 = /^\d{5}-\d{4}$/;
// 兼容两种格式
const zipRegex = /^\d{5}(-\d{4})?$/;
function isValidZip(zip) {
return zipRegex.test(zip);
}
```
USPS API 校验
USPS 提供 Address Validation API,需要注册开发者账号:
邮编与州代码映射
邮编第一位数字基本能确定地区,再结合第二、三位可以精确到州。
| 邮编范围 | 主要州 |
|---|---|
| 00501-11999 | NY, NJ, PA |
| 12000-19999 | NY, PA, DE, MD |
| 20000-24699 | DC, VA, WV, NC |
| 27000-29999 | NC, SC, TN |
| 30000-32999 | FL, GA, TN, AL |
| 33000-37999 | FL, GA, AL, MS |
| 40000-47999 | KY, IN, OH, MI |
| 48000-49999 | MI, WI, MN |
| 50000-52999 | IA, MO, IL, KS |
| 55000-58999 | MN, ND, SD, NE |
| 60000-62999 | IL, MO, KS |
| 63000-65999 | MO, KS, OK |
| 70000-79999 | TX, LA, OK |
| 80000-81999 | CO, WY, NM, UT |
| 83000-89999 | ID, NV, UT, AZ, MT |
| 90000-99999 | CA, OR, WA, AK, HI |
特殊邮编情况
| 类型 | 邮编 | 说明 |
|---|---|---|
| 测试邮编 | 12345 | Schenectady, NY (通用占位) |
| 测试邮编 | 90210 | Beverly Hills, CA (流行文化) |
| 测试 ZIP+4 | 12345-6789 | 标准测试格式 |
| 不存在邮编 | 00000 | 不可作为有效地址 |
在开发中的最佳实践
```javascript
function normalizeZip(zip) {
return zip.replace(/-/g, '').substring(0, 5);
}
function formatZip(zip) {
const cleaned = normalizeZip(zip);
if (cleaned.length === 9) {
return cleaned.substring(0, 5) + '-' + cleaned.substring(5);
}
return cleaned;
}
```
总结
美国邮编规则清晰、规律性强,是开发地址相关功能时必须掌握的基础知识。理解邮编结构有助于:
本文介绍的结构和校验方法,可直接用于开发测试数据生成和地址字段处理。