当地址表单分散为 City、State、ZIP Code 三个独立字段时,系统需要验证这三个字段的组合是否合理。很多表单会在 City 变更后自动验证 ZIP Code,或在 ZIP Code 变更后清空 City 和 State。这种交互逻辑的复杂性需要仔细测试。
本文讨论字段验证逻辑,不代表地址真实可收件。
City-State-ZIP 三字段的对应关系
标准的对应关系是:一个 City 通常对应一个 State,一个 City 可能对应多个 ZIP Code(大城市),或一个 ZIP Code 可能对应多个 City(边界地带)。表单验证需要考虑这些变体。
为什么 City-State-ZIP 会不匹配?
- 用户手动输入时拼写错误或大小写不一致。
- 城市改名或行政区划调整导致数据库中的值过期。
- ZIP Code 跨越市界,一个邮编属于多个城市。
- 用户输入了城市的昵称或简称(如 NYC 代替 New York City)。
典型的验证场景
场景 1:用户选择 California(CA)和 Los Angeles 后,系统自动填充可能的 ZIP Code(90001-90045 等)。场景 2:用户输入 ZIP Code 90210 后,系统显示对应的 City 为 Beverly Hills,State 为 California。
City-State-ZIP 匹配表单测试清单
- 选择 State 后 City 下拉是否只显示该州的城市。
- 输入 City 后 State 是否自动填充或锁定。
- 输入 ZIP Code 后 City 和 State 是否自动填充和校验。
- 修改 City 后 ZIP Code 是否清空或更新。
- 不匹配的组合(如 CA + New York)是否返回错误。
- 前端校验失败时是否有清楚的错误提示。
第三方验证服务的使用
对于大型电商和支付系统,使用专业的地址验证服务(如 SmartyStreets、PostGrid、Melissa Data)可以提升准确性和用户信心。这类服务通常提供 API,支持实时验证。
需要测试样例和参考,可以使用 美国地址生成器。