2016-11-04 111 views
-2

我需要建立一个正则表达式来验证所有类型的电话号码的其中includes + () . -正则表达式来验证所有的电话号码

由于谷歌和堆栈溢出和我有一个正则表达式

/^[+]*[(]{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; 

谁能帮我用一个单一的正则表达式通过改进它来解决上述问题..?

由于提前

+0

您限制用户不要输入超过3个连续数字的方式,您可以对连字符和点进行设置,对吗?想想看。 –

+0

我不给你投票。尝试此链接http://stackoverflow.com/questions/22378736/regex-for-mobile-number-validation –

+0

@WasiAhmad用户可以有空间,时间段和超时但不连续。他可以输入连续号码 –

回答

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 

您可以修改这句话来适应您的要求,如果需要的话。

0

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

Demo Here

+0

感谢您的快速回复。正如我在帖子中提到的,我需要使用相同的正则表达式验证多个字段,所以我删除了g标志。 我会试试这个 –