是否有英国地址或电话号码验证的伪代码?

时间:2008-11-10 06:35:32

标签: validation phone-number street-address

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

  • 地址第1行
  • 电话号码
  • 手机号码(如果他们有特殊规则,他们可能不会这样做)
  • 邮政编码

6 个答案:

答案 0 :(得分:5)

地址第1行,如果你想验证用户输入的自由形式,你可能已经被软管了。存在巨大的变化。您可以使用PostCode地址文件(见下文)来提供帮助,

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

电话和手机号码。见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 :(得分:4)

地址第1行几乎可以是任何东西。并不总是门牌号码。

电话号码:区号的长度各不相同。我不想发誓全长是否恒定,但我怀疑它总是至少10位数。移动号码通常(IME)从07开始,而固定电话以01或02开始。特殊号码(免费,本地费率等)通常从08开始。我将尝试为此找到参考。 (编辑:再次,有一个很好的Wikipedia article。)

维基百科有good article about UK postcodes,包括正则表达式。

答案 2 :(得分:3)

Perl拥有可以处理英国电话号码的Number::Phone模块。 Royal Mail提供地址验证和列表清理服务。

答案 3 :(得分:1)

对于英国电话号码,您最好的选择(不幸的是)可能是从Ofcom下载编号计划(他们是excel电子表格,所有相关的数字范围,分成区号,“地理号码”,个人号码,移动号码,各种服务号码,不同的付费号码以及从号码范围到操作员的映射(后者可能不是您需要的东西)。

答案 4 :(得分:1)

与往常一样,不要过度验证。检查最可能出现严重错误的输入然后继续。尝试跟踪在任何特定区域设置中使用的前缀和长度的电话号码是一个巨大的浪费您的时间。让一些可能可以修复的错误比通过告诉他们“无效”而失去客户更好。

(最接近您在英国获得的标准寻址格式是邮政编码加上门牌号码。即便如此,总会有例外情况。)

答案 5 :(得分:0)

我已经开始为GB电话号码here进行Django表单验证的代码(或至少一堆RegEx模式)。
有一个基本的解释here