本文要点

  • 收件人与楼宇信息在上,Postcode 通常单独位于底部
  • Post Town 是邮政地址元素,不应被普通城市名推导替换
  • County 在很多现代地址中不是必填项
  • Postcode 要保留中间空格并作为字符串处理
作者
Random Address Generator 编辑团队
审核
国际地址格式审核组
最近实质更新
根据 Royal Mail 的地址查询说明和 HTML 表单字段规则,重新核对英国地址层级、Post Town 与 Postcode 的测试方法。

英国地址的标准行顺序

英国地址通常从具体收件对象写到邮政区域:收件人、房屋或楼宇、街道、可选的区域、Post Town,最后是 Postcode。房屋可能只有名称没有门牌号,这不应被表单当成异常。

与美国表单不同,英国地址不存在一个全国通用的 State 必填字段。如果产品把 County 硬设为必填,用户可能只能填入不必要或不准确的值。

格式示例
Priya ShahFlat 4, Ash Court18 King StreetBRISTOLBS1 4DJUNITED KINGDOM

如何拆分到在线表单字段

不要把信封的每一行机械映射成一个固定数据库列。表单应先保留用户输入,再将 Post Town 和 Postcode 作为可搜索的独立字段。Address Line 2 应该可空,并允许填入 Flat、Building 或者区域信息。

表单字段示例测试要点
Address Line 1Flat 4, Ash Court不要假设必然包含数字街道
Address Line 218 King Street允许为空,不要填 N/A
Post TownBRISTOL保留邮政地址中的城镇值
County通常可选,不用它代替 Post Town
PostcodeBS1 4DJ保留大小写归一化后的中间空格
CountryGB展示名与 ISO 代码分开存储

Postcode 不只是一个正则表达式

英国 Postcode 由 outward code 和 inward code 两部分组成,中间保留一个空格。前端正则只能排除明显错误,不能证明邮编已分配、与街道匹配或者可投递。

测试时应分开验证原始输入、归一化值和服务端校验结果。例如用户输入 bs14dj,界面可归一化为 BS1 4DJ,但不应凭空宣称这是真实投递点。

  • 接受前后空白并在保存前 trim
  • 将字母统一转成大写
  • 将最后三位与前半部分用一个空格分开
  • 用 Royal Mail 或授权地址数据服务做真实查询

值得保留的英国边界用例

最容易暴露美国中心化数据模型的不是普通住宅,而是只有房屋名称的地址、多行楼宇地址和不填 County 的地址。这些记录应进入回归测试,而不是作为一次性手工案例。

  • 房屋名称代替门牌号
  • Flat 与楼宇名分成两行
  • Post Town 与用户日常所说的城市不同
  • 空 County 值仍可提交
  • 北爱尔兰地址使用 BT 开头的 Postcode

如何选择安全的测试地址

格式相似不等于真实可投递。用于界面布局和数据结构测试时,应明确标记数据为合成记录,并避免将生成结果用于真实配送、账户验证或支付。

如果测试需要可投递性,应使用组织拥有或明确获授权的测试地址,并把邮政查询结果与生成器结果分开记录。

常见问题

英国地址一定要填 County 吗?

不一定。现代英国邮政地址的关键是准确的地址行、Post Town 和 Postcode。County 可用于辅助理解,但在许多表单中应保持可选。

Postcode 去掉空格还能保存吗?

可以允许用户输入无空格形式,但建议在展示和标准化字段中恢复 outward code 与 inward code 之间的一个空格。

通过正则的 Postcode 是否一定真实?

不是。正则只能检查字符结构,不能证明该邮编已被分配,也不能证明它与具体房屋匹配。

来源与进一步阅读

  1. Royal Mail Postcode Finder 使用说明
  2. MDN:HTML autocomplete 地址字段