1

我正在浏览互联网以找到适合电话号码的 javascript 正则表达式,但我找到的不是我需要的。

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

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

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

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

任何帮助将非常感激!:)

4

2 回答 2

1

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

  • +4qwertzuiopasdfghjkl
  • +-asdfasdfasdfasdf

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

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

这将匹配所有有效数字,但也匹配无效结构,例如+---------或仅+带有尾随空格。如果您想真正接近否认很多无效组合,我建议您阅读内容,但是您可以看到正则表达式变得混乱。

于 2013-02-14T17:32:39.200 回答
1

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

 if !(phone_number.match(/\d/g).length == 9) inValidate()
于 2013-02-14T18:39:56.893 回答