美国邮编查询: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 条)