返回经验列表
邮编规则USPS开发参考

USPS 美国邮编结构详解:5位基本格式与ZIP+4扩展

Petmind2026-06-226分钟阅读

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`:

  • `1` - 东北部地区
  • `00` - 纽约 SCF
  • `01` - 曼哈顿区域
  • 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,需要注册开发者账号:

  • 测试环境:<https://www.usps.com/business/web-tools-apis/>
  • 生产环境:需要 USPS 商业账号
  • 邮编与州代码映射

    邮编第一位数字基本能确定地区,再结合第二、三位可以精确到州。

    邮编范围主要州
    00501-11999NY, NJ, PA
    12000-19999NY, PA, DE, MD
    20000-24699DC, VA, WV, NC
    27000-29999NC, SC, TN
    30000-32999FL, GA, TN, AL
    33000-37999FL, GA, AL, MS
    40000-47999KY, IN, OH, MI
    48000-49999MI, WI, MN
    50000-52999IA, MO, IL, KS
    55000-58999MN, ND, SD, NE
    60000-62999IL, MO, KS
    63000-65999MO, KS, OK
    70000-79999TX, LA, OK
    80000-81999CO, WY, NM, UT
    83000-89999ID, NV, UT, AZ, MT
    90000-99999CA, OR, WA, AK, HI

    特殊邮编情况

    类型邮编说明
    测试邮编12345Schenectady, NY (通用占位)
    测试邮编90210Beverly Hills, CA (流行文化)
    测试 ZIP+412345-6789标准测试格式
    不存在邮编00000不可作为有效地址

    在开发中的最佳实践

  • 字段类型:使用 `CHAR(5)` 而非 `VARCHAR`,节省空间并强制长度
  • 数据格式:存储时去掉格式(去掉连字符),展示时再加
  • 校验顺序:先正则校验格式,再调用 USPS API 校验真实性
  • 脱敏处理:日志中不要打印完整邮编(隐私考虑)
  • ```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;

    }

    ```

    总结

    美国邮编规则清晰、规律性强,是开发地址相关功能时必须掌握的基础知识。理解邮编结构有助于:

  • 验证地址真实性
  • 提升查询性能
  • 避免常见数据错误
  • 实现自动补全功能
  • 本文介绍的结构和校验方法,可直接用于开发测试数据生成和地址字段处理。

    返回经验列表