Javascript RegEx for Global电话号码

时间:2013-02-14 17:15:35

标签: javascript regex

我正在浏览互联网,为电话号码找到一个正确的javascript正则表达式,但我发现的那些不是我需要的。

我的案件的可接受电话号码类型必须符合以下规则:

  • 可以从+0-9
  • 开始
  • 允许所有其余字符串只有0-9-和空格(最好在数字之间只有1个空格)

我到目前为止尝试了这个:/^\+[\-\d\s]/但我没有得到正确的结果。我试过阅读一些教程,但我对此很新,似乎我错过了一些东西。

例如,可接受的电话号码是:+30 6995 4488551(允许的空格)或0030 6995 4488551等。

任何帮助将不胜感激! :)

2 个答案:

答案 0 :(得分:1)

您的正则表达式匹配任何以+开头,后跟单个-,数字或空白字符的内容。所以你会匹配例如:

  • + 4qwertzuiopasdfghjkl
  • + - asdfasdfasdfasdf

我建议您查看http://www.regular-expressions.info/上的示例和教程。至于你的电话号码,一个更好的正则表达式是:

/^\+?[\d -]+$/

这将匹配所有有效数字,但也包含无效结构,如+---------或简单+带尾随空格。如果你真的想要拒绝很多无效的组合,我建议你阅读this,但是你可以看到正则表达式变得混乱。

答案 1 :(得分:1)

添加到migg的答案 - 您可以在正则表达式测试后添加更多过滤器,例如,可以确保表达式中至少有一个最小位数,或者您拥有什么。 如,

 if !(phone_number.match(/\d/g).length == 9) inValidate()