2015-09-24 242 views
3

我想产生一个正则表达式这将符合下列序列 -正则表达式逗号分隔电话号码

+91123456789,+41123456789,+21123456789....等,没有电话号码的限制。

基本上用法是验证用户可以添加的电话号码,电话号码可以是多个,需要用逗号分隔,我已经删除了用户可能添加的空白空间,所以不用担心。

我不擅长用正则表达式,并创建以下正则表达式,但它不匹配前面的电话号码,是指电话号码的整串不匹配 -

^\+?\d{1,4}?[-.\s]?\(?\d{1,3}?\)?[-.\s]?\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9},\+?\d{1,4}?[-.\s]?\(?\d{1,3}?\)?[-.\s]?\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9}$ 

我需要验证用户输入使用JavaScript或jQuery。

有效的电话号码应具有象+91 +21或国家代码等国家代码可以是一个或两个数字,那么需要的位数是7至9

我任何人都可以帮忙,这将是非常可观的,我花了很多时间在这一个。

+0

我找到www.regex101.com是一个很好的资源。你还没有在你的问题中指定你认为有效的电话号码是什么,有效的号码是什么? –

+0

为什么不只是'\ + \ d {11}/g'? – Johan

+0

@jack,你是对的,我一直在regex101.com上测试指定的正则表达式,我正在添加有问题的有效电话号码的格式。谢谢 –

回答

3

为了验证整个字符串处理用逗号sepparated多张值只需要加一个组*乘数:

^\+\d{8,11}(,\+\d{8,11})*$ 
+0

谢谢,让我检查这个正则表达式:) –

+0

谢谢,你的解决方案工作完美,我已经在你的答案中添加了正则表达式链接。 –

0

如果我理解正确的要求,下面的正则表达式应该工作

\+\d{9,11} 

但是,您可以在国家代码进行分离,因为如果你需要允许(+44)xxxxxxxxx

\+\d{2}\d{7,9} 

如果要求是允许1个国家/地区代码,将正则表达式调整为以下内容

\+\d{1,2}\d{7,10} //I think to 10, not sure on their numbers 

你认为合适的:)你可以更新范围

演示:https://regex101.com/r/rJ4wM7/1

+0

我相信你应该期待国家代码只有一位数的国家,美国是+1,并且他要求增加多个电话并用逗号分隔它们的方法 – Luizgrs

+0

感谢johan,让我试试 –

+0

@Luizgrs,是的,我有在我的问题更新一些国家有一位数的国家代码,一些有两位数字,谢谢 –