我需要验证英国号码
以下是数字的样本类型
01457 341235
0229 111111
+1213 3133143
仅在第一个位置允许使用可选加号
使用此正则表达式但无法正常工作
^(?:\W*\d){11}\W*$
答案 0 :(得分:4)
actual UK phone number将以0或+44(后者为英国国家/地区代码)开头,或者可能只有44,然后是九位或十位数。捕获的正则表达式看起来像:
^(?:0|\+?44)(?:\d\s?){9,10}$
在这个正则表达式中,我允许以任何方式用空格分隔数字,因为没有一种标准化的方法来分解数字。如果你愿意,你可以进一步将其缩小到某些允许的分组,但这会大大增加正则表达式的复杂性。
你的问题意味着你可能想要更广泛或不同的东西。由于您的某些示例不是有效的英国号码(+1213 3133143
,12345 123456
)。
你可以使用这样的东西来简单匹配10到12位数字,任意间距,可能前面加上+:
^\+?(?:\d\s?){10,12}$