正则表达式验证所有电话号码

时间:2016-11-04 07:01:19

标签: javascript

我需要构建一个正则表达式来验证includes + ( ) . -

所有类型的电话号码

感谢Google和堆栈溢出,我得到了一个正则表达式

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

验证所有电话号码。

但在验证+(123 456-7890时,上述正则表达式无法正常工作。 所以我将上面的正则表达式修改为

/^\+?([(]{1}[0-9]{1,3}[)]{1}|[0-9]{1,3})([-\s0-9]*|[.\s0-9]*)\d+$/

它工作正常。

现在我需要限制用户输入连续的-和点(.)

所以我手动验证

if(HomePhone.indexOf("..") > -1 && HomePhone.indexOf("--") > -1) 
return false;

任何人都可以通过改进来帮助我使用单个正则表达式解决上述问题吗?

先谢谢

2 个答案:

答案 0 :(得分:0)

用于匹配..--使用正则表达式/(\.\.+|\--+)/g

Demo Here

答案 1 :(得分:0)

我相信以下正则表达式将满足您的所有要求。

正则表达式:^\+?(\([0-9]{3}\)|[0-9]{3})(-. )?[0-9]{3}(-. )?[0-9]{4}$

此正则表达式应接受以下内容:

(123) 456-7890 
+(123) 456-7890 
+(123)-456-7890 
123-456-7890 
123.456.7890 
1234567890 
+3163636363 
075-6354672

如果需要,您可以修改此表达式以适应您的要求。