松散的电话正则表达式验证

时间:2010-07-30 13:12:04

标签: php regex

我一直在努力寻找验证正则表达式来对电话号码进行一些松散的验证。当我使用它们时,我将删除一些东西,但我想允许用户自由输入他们想要的号码,并且我想在他们输入时显示它。

我认为最好的办法就是将我的角色列入白名单。我想了

[space] + - [0-9] ( )

我应该允许其他任何角色吗?我不太确定我是否应该在模式中寻找与此不匹配的字符?

到目前为止,我能想到的只有,

[\+0-9\s\-\(\)]

这似乎匹配每个角色

我一直在这里玩,http://gskinner.com/RegExr/

将此作为我的数据,

+44 787 553 7794
+1-818-923-4821
&9_981-432 p

+44 (0) 20 874 1932

如果有人能够朝着正确的方向推动我,我真的很感激!谢谢:))

3 个答案:

答案 0 :(得分:1)

^[\+0-9\s\-\(\)]+$

^和$将确保我们匹配整个字符串

+(在最终$之前)将允许范围匹配整数(多个字符)

答案 1 :(得分:0)

如果要在用户输入字符串时保留字符串,然后删除非数字的所有字符串,或者如果要拨打它,请删除#或+。

答案 2 :(得分:0)

  

将此作为我的数据,   +44(0)20 8874 1932

当遇到像+44(0)20 8874 1932这样的无效格式时,只需删除括号,即可得到无效的数字+44 020 8874 1932.

此号码应以国际使用的+44 20 8874 1932和国家使用的(020)8874 1932表示。

国际格式不包括括号。