英国电话号码的正则表达式

时间:2017-06-02 10:56:02

标签: regex

我需要验证英国号码

以下是数字的样本类型

01457 341235
0229  111111

+1213 3133143

仅在第一个位置允许使用可选加号

使用此正则表达式但无法正常工作

^(?:\W*\d){11}\W*$

1 个答案:

答案 0 :(得分:4)

actual UK phone number将以0或+44(后者为英国国家/地区代码)开头,或者可能只有44,然后是九位或十位数。捕获的正则表达式看起来像:

^(?:0|\+?44)(?:\d\s?){9,10}$

在这个正则表达式中,我允许以任何方式用空格分隔数字,因为没有一种标准化的方法来分解数字。如果你愿意,你可以进一步将其缩小到某些允许的分组,但这会大大增加正则表达式的复杂性。

你的问题意味着你可能想要更广泛或不同的东西。由于您的某些示例不是有效的英国号码(+1213 313314312345 123456)。

你可以使用这样的东西来简单匹配10到12位数字,任意间距,可能前面加上+:

^\+?(?:\d\s?){10,12}$
相关问题