美国邮编查询:ZIP Code 反查州和城市

输入 5 位邮编,按 USPS 各州分配范围反查所属州;命中样例库时还会给出对应城市。往下是全部 51 州的邮编范围对照表、常用正则表达式和可复制的 JSON 数据。

51 州邮编范围对照表

每州一行,范围为 USPS 常见分配区间(个别跨州特例已并入所属州)。点击州名进入该州地址生成器。

州缩写邮编范围
Alabama(阿拉巴马州)AL35004–36925
Alaska(阿拉斯加州)AK99501–99950
Arizona(亚利桑那州)AZ85001–86556
Arkansas(阿肯色州)AR71601–72959, 75502
California(加利福尼亚州)CA90001–96162
Colorado(科罗拉多州)CO80001–81658
Connecticut(康涅狄格州)CT06001–06389, 06391–06928
Delaware(特拉华州)DE19701–19980
District of Columbia(华盛顿特区)DC20001–20039, 20042–20599, 20799
Florida(佛罗里达州)FL32004–34997
Georgia(佐治亚州)GA30001–31999, 39813–39901
Hawaii(夏威夷州)HI96701–96898
Idaho(爱达荷州)ID83201–83877
Illinois(伊利诺伊州)IL60001–62999
Indiana(印第安纳州)IN46001–47997
Iowa(爱荷华州)IA50001–52809, 68119–68120
Kansas(堪萨斯州)KS66002–67954
Kentucky(肯塔基州)KY40003–42788
Louisiana(路易斯安那州)LA70001–71232, 71234–71497
Maine(缅因州)ME03901–04992
Maryland(马里兰州)MD20331, 20335–20797, 20812–21930
Massachusetts(马萨诸塞州)MA01001–02791, 05501–05544
Michigan(密歇根州)MI48001–49971
Minnesota(明尼苏达州)MN55001–56763
Mississippi(密西西比州)MS38601–39776, 71233
Missouri(密苏里州)MO63001–65899
Montana(蒙大拿州)MT59001–59937
Nebraska(内布拉斯加州)NE68001–68118, 68122–69367
Nevada(内华达州)NV88901–89883
New Hampshire(新罕布什尔州)NH03031–03897
New Jersey(新泽西州)NJ07001–08989
New Mexico(新墨西哥州)NM87001–88441
New York(纽约州)NY00501–00544, 06390, 10001–14975
North Carolina(北卡罗来纳州)NC27006–28909
North Dakota(北达科他州)ND58001–58856
Ohio(俄亥俄州)OH43001–45999
Oklahoma(俄克拉荷马州)OK73001–73199, 73401–74966
Oregon(俄勒冈州)OR97001–97920
Pennsylvania(宾夕法尼亚州)PA15001–19640
Rhode Island(罗德岛州)RI02801–02940
South Carolina(南卡罗来纳州)SC29001–29948
South Dakota(南达科他州)SD57001–57799
Tennessee(田纳西州)TN37010–38589
Texas(德克萨斯州)TX73301, 75001–75501, 75503–79999, 88510–88589
Utah(犹他州)UT84001–84784
Vermont(佛蒙特州)VT05001–05495, 05601–05907
Virginia(弗吉尼亚州)VA20040–20041, 20101–20199, 22001–24658
Washington(华盛顿州)WA98001–99403
West Virginia(西弗吉尼亚州)WV24701–26886
Wisconsin(威斯康星州)WI53001–54990
Wyoming(怀俄明州)WY82001–83128, 83414

美国邮编正则表达式

5 位 ZIP Code

^\d{5}$

最常用:只接受 5 位数字,如 90012。

ZIP 或 ZIP+4(推荐)

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

同时接受 90012 和 90012-1234,是地址表单最稳妥的写法。

仅 ZIP+4

^\d{5}-\d{4}$

强制要求 4 位扩展段,一般只在对账、批量清洗时使用。

注意:正则只能验证格式,不能验证邮编真实存在,更不能验证它和 City / State 字段匹配——这是地址表单最常见的漏验点。要做一致性校验,用上面的范围表(州级),或直接用地址生成器产出的匹配样例做正反用例。

州邮编范围 JSON

51 州完整范围数据(闭区间,含跨州特例),可直接用于表单校验或数据清洗。更多测试数据见开源仓库 us-address-sample-data。

{
  "AL": [
    [
      35004,
      36925
    ]
  ],
  "AK": [
    [
      99501,
      99950
    ]
  ],
  "AZ": [
    [
      85001,
      86556
    ]
  ],
  "AR": [
    [
      71601,
      72959
    ],
    [
      75502,
      75502
    ]
  ],
  "CA": [
    [
      90001,
      96162
    ]
  ],
  "CO": [
    [
      80001,
      81658
    ]
  ],
  "CT": [
    [
      6001,
      6389
    ],
    [
      6391,
      6928
    ]
  ],
  "DE": [
    [
      19701,
      19980
    ]
  ],
  "DC": [
    [
      20001,
      20039
    ],
    [
      20042,
      20599
    ],
    [
      20799,
      20799
    ]
  ],
  "FL": [
    [
      32004,
      34997
    ]
  ],
  "GA": [
    [
      30001,
      31999
    ],
    [
      39813,
      39901
    ]
  ],
  "HI": [
    [
      96701,
      96898
    ]
  ],
  "ID": [
    [
      83201,
      83877
    ]
  ],
  "IL": [
    [
      60001,
      62999
    ]
  ],
  "IN": [
    [
      46001,
      47997
    ]
  ],
  "IA": [
    [
      50001,
      52809
    ],
    [
      68119,
      68120
    ]
  ],
  "KS": [
    [
      66002,
      67954
    ]
  ],
  "KY": [
    [
      40003,
      42788
    ]
  ],
  "LA": [
    [
      70001,
      71232
    ],
    [
      71234,
      71497
    ]
  ],
  "ME": [
    [
      3901,
      4992
    ]
  ],
  "MD": [
    [
      20331,
      20331
    ],
    [
      20335,
      20797
    ],
    [
      20812,
      21930
    ]
  ],
  "MA": [
    [
      1001,
      2791
    ],
    [
      5501,
      5544
    ]
  ],
  "MI": [
    [
      48001,
      49971
    ]
  ],
  "MN": [
    [
      55001,
      56763
    ]
  ],
  "MS": [
    [
      38601,
      39776
    ],
    [
      71233,
      71233
    ]
  ],
  "MO": [
    [
      63001,
      65899
    ]
  ],
  "MT": [
    [
      59001,
      59937
    ]
  ],
  "NE": [
    [
      68001,
      68118
    ],
    [
      68122,
      69367
    ]
  ],
  "NV": [
    [
      88901,
      89883
    ]
  ],
  "NH": [
    [
      3031,
      3897
    ]
  ],
  "NJ": [
    [
      7001,
      8989
    ]
  ],
  "NM": [
    [
      87001,
      88441
    ]
  ],
  "NY": [
    [
      501,
      544
    ],
    [
      6390,
      6390
    ],
    [
      10001,
      14975
    ]
  ],
  "NC": [
    [
      27006,
      28909
    ]
  ],
  "ND": [
    [
      58001,
      58856
    ]
  ],
  "OH": [
    [
      43001,
      45999
    ]
  ],
  "OK": [
    [
      73001,
      73199
    ],
    [
      73401,
      74966
    ]
  ],
  "OR": [
    [
      97001,
      97920
    ]
  ],
  "PA": [
    [
      15001,
      19640
    ]
  ],
  "RI": [
    [
      2801,
      2940
    ]
  ],
  "SC": [
    [
      29001,
      29948
    ]
  ],
  "SD": [
    [
      57001,
      57799
    ]
  ],
  "TN": [
    [
      37010,
      38589
    ]
  ],
  "TX": [
    [
      73301,
      73301
    ],
    [
      75001,
      75501
    ],
    [
      75503,
      79999
    ],
    [
      88510,
      88589
    ]
  ],
  "UT": [
    [
      84001,
      84784
    ]
  ],
  "VT": [
    [
      5001,
      5495
    ],
    [
      5601,
      5907
    ]
  ],
  "VA": [
    [
      20040,
      20041
    ],
    [
      20101,
      20199
    ],
    [
      22001,
      24658
    ]
  ],
  "WA": [
    [
      98001,
      99403
    ]
  ],
  "WV": [
    [
      24701,
      26886
    ]
  ],
  "WI": [
    [
      53001,
      54990
    ]
  ],
  "WY": [
    [
      82001,
      83128
    ],
    [
      83414,
      83414
    ]
  ]
}

邮编 → 州 校验函数

把左侧 JSON 和这个函数一起放进项目,就能在提交前校验「邮编与所选州是否一致」。程序化调用见 免费地址 API。

const STATE_ZIP_RANGES = /* 上方 JSON */;

function zipToState(zip) {
  if (!/^\d{5}$/.test(zip)) return null;
  const n = Number(zip);
  for (const [state, ranges] of Object.entries(STATE_ZIP_RANGES)) {
    if (ranges.some(([a, b]) => n >= a && n <= b)) return state;
  }
  return null;
}

输入邮编后查到的州准确吗?

本页按 USPS 各州邮编分配范围判断,覆盖全部 51 个州/特区,并处理了跨州特例(如 71233 属 MS、75502 属 AR)。个别新分配的邮编可能超出既有范围,以 USPS 官方数据为准。

为什么有的邮编以 0 开头,粘贴到 Excel 会丢位?

新英格兰地区(CT/MA/ME/NH/NJ/RI/VT)和纽约部分邮编以 0 开头,如 02138。电子表格会把它当数字处理丢掉前导 0,导入前应把邮编列设为文本格式,校验时也要用字符串而不是数字比较。

ZIP 和 ZIP+4 有什么区别,表单该用哪种正则?

ZIP 是 5 位基础邮编,ZIP+4 在后面追加 4 位投递段(如 90012-1234)。表单推荐用 ^\d{5}(-\d{4})?$ 同时兼容两种输入;只存 5 位时截取前 5 位即可。

需要一批城市、州、邮编互相匹配的完整地址怎么办?

用 AddressMock 的地址生成器:按州或城市生成姓名、街道、City、State、ZIP 严格匹配的完整样例,支持批量导出 CSV/JSON,也有免费 API。

美国地址生成器美国电话区号查询美国邮编(ZIP Code)详解城市、州与 ZIP Code 匹配免税州邮编大全批量生成(一次 100 条)