您是否有用于在英国现场验证以下项目的伪代码?我来自美国,所以我现在只知道美国的。

  • 地址第一行
  • 电话号码
  • 手机号码(如果他们对此有特殊规则,但他们可能没有)
  • 邮政编码
有帮助吗?

解决方案

地址行 1,如果您想验证用户自由输入的内容,您可能会被淘汰。存在巨大的可变性。您可以使用邮政编码地址文件(见下文)来协助,

通常,如果您想要“标准”地址,面向英国的网站会要求提供邮政编码,然后提示用户从该邮政编码的所有地址中选择正确的地址

电话和手机号码。看这里 http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom. 。可以在此处找到用于验证这些的脚本(以多种语言): http://www.braemoor.co.uk/software/telnumbers.shtml

邮政编码格式: http://en.wikipedia.org/wiki/UK_postcodes (包含用于验证的正则表达式,并引用列出有效地址的邮政编码地址文件)

其他提示

地址行 1 几乎可以是任何内容。并不总是有门牌号码。

电话号码:区号的长度各不相同。我不想发誓全长是否恒定,但我怀疑它总是至少 10 位数字。手机号码 (IME) 通常以 07 开头,而固定电话通常以 01 或 02 开头。特殊号码(免费、本地费率等)通常以 08 开头。我会尝试寻找这方面的参考。(编辑:再说一遍,有个好东西 维基百科文章.)

维基百科有一个 关于英国邮政编码的好文章, ,包括它们的正则表达式。

Perl 有 号码::电话 可以处理英国电话号码的模块。 皇家邮政 提供地址验证和列表清理服务。

对于英国电话号码,您最好的选择(不幸的是)可能是从 Ofcom 下载编号计划(它们是 Excel 电子表格,包含所有相关的号码范围,分为区号、“地理号码”、个人号码、手机号码、各种服务号码、不同的付费号码,还有从号码范围到运营商的映射(不过,后者可能不是您需要的)。

与此类问题一样,不要沉迷于过度验证。检查最有可能严重畸形的输入,然后继续。尝试跟踪在任何特定区域设置中使用的电话号码的前缀和长度会极大地浪费您的时间。允许一些可能可以修复的错误通过,比告诉他们“无效”而失去客户要好。

(在英国最接近标准的地址格式是邮政编码加门牌号。即使如此,总有例外。)

我已经开始编写用于 GB 电话号码的 Django 表单验证的代码(或至少一堆正则表达式模式) 这里.
有基本的解释 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top