当前位置:  开发笔记 > 编程语言 > 正文

验证英国电话号码

如何解决《验证英国电话号码》经验,为你挑选了1个好方法。

如何使用正则表达式在C#中验证英国电话号码?



1> Spudley..:

接受的答案中的正则表达式与所有有效的UK号码都不匹配,因为它太过限制(同时打开了额外的数字范围,例如0203,它认为无效).

英国电话号码遵循相当简单的规则:

它们可以是10或11位数(除了一些特殊数字,但你不太可能需要验证它们)

它们由区号和后面的本地号码组成.区号的长度在3到5位之间变化,并且号码的本地部分占用10或11位的剩余长度.出于所有实际目的,没有人只引用其编号的本地部分,因此您可以忽略现在的区别,除了它如何影响格式.

他们从零开始.

第二个数字可以是任何东西.目前没有有效的数字以04或开头06,但没有什么可以阻止这些范围在未来使用.(03最近已投入使用)

它们可以使用一组括号和空格(一个或多个,位于不同的位置)进行格式化,但这些都是完全可选的.

因此,英国电话号码的基本工作表达式可能如下所示:

/^\(?0( *\d\)?){9,10}$/

这将检查10或11位数字,从零开始,在任何数字之间有格式空格,并且可选地检查区域代码的一组括号.

(是的,这会允许不匹配的括号,因为我没有检查是否只有一个结束括号.强制执行此操作会使表达更加复杂,我现在没时间做这个,但感觉如果你愿意可以自由添加这个)

顺便说一下,如果您想要进行其他过滤,您可能还需要注意以下规则:

数字起始08,09并且070是特殊价格数字,通常不会作为私人号码给出,因此如果验证私人号码可以排除.

07号码是移动的(除了070;见上文),如果您专门验证固定电话,可以排除这些号码.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有