我在一些网站上找到了这个代码,它工作得很完美。它验证电话号码是以下格式之一: (123) 456-7890或123-456-7890

问题是我的客户端(我不知道为什么,可能是客户端)想要添加另一种格式,连续的十个数字,像这样:1234567890。

我用这个正则表达式,

/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/

我如何添加它也验证另一种格式?我不擅长使用正则表达式。


当前回答

我不得不承认,核实电话号码是一项艰巨的任务。 至于这个具体的问题,我会改变正则表达式从

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)\d{4}$/

to

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

因为唯一多余的元素是最后的破折号/空格。

其他回答

下面的REGEX将验证这些格式中的任何一个:

(123) 456-7890 The 123-456-7890 123.456.7890 1234567890

/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/

一个很简单的方法:

"9001234567".match(/^\d{10}$/g)

简单的正则表达式:/ \ b \ d {3} [-] ? \ d{3}[-]吗?\ d {4} \ b / g

看看这个格式,希望它有用: 444-555-1234 f: 246.555.8888 m: 1235554567

我不得不承认,核实电话号码是一项艰巨的任务。 至于这个具体的问题,我会改变正则表达式从

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)\d{4}$/

to

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

因为唯一多余的元素是最后的破折号/空格。

如果你想找10个数字,那就忽略除数字-以外的所有数字

   return value.match(/\d/g).length===10;