我想要在'0'后加10位数的手机号码(或)0091,后面跟着10位手机号码(或)+91,后面跟着10位数字。正则表达式在java中的手机号码验证
1)0遵循和+91 folowed号码与正则表达式如下工作我也想跟着0091号要工作,我的正则表达式是:
"^([0]|(?:[0][0]|\\+)(91))([7-9]{1})([0-9]{9})$";
你可以建议我的工作正则表达式。
我想要在'0'后加10位数的手机号码(或)0091,后面跟着10位手机号码(或)+91,后面跟着10位数字。正则表达式在java中的手机号码验证
1)0遵循和+91 folowed号码与正则表达式如下工作我也想跟着0091号要工作,我的正则表达式是:
"^([0]|(?:[0][0]|\\+)(91))([7-9]{1})([0-9]{9})$";
你可以建议我的工作正则表达式。
确切的正则表达式,你似乎打算(基于到目前为止你已经尝试了什么)是:
^(?:0091|\\+91|0)[7-9][0-9]{9}$
作为一般的尖,已经这个摸索出自己我会建议使用这样的网站RegExr或RegexPal
将其设置为多行模式(让^
和$
在每行的末尾处进行匹配),然后将0091
,+91
和0
添加到单独行的输入框中 - 因此您有something like this。
然后尝试使该只是部分匹配的正则表达式,你的情况,你需要像
^0091|\+91|0$
注:RegExr你没有逃跑反斜杠(所以当你使用正则表达式在Java中,你需要通过逃避他们)。
是的,它的工作非常感谢 –
没问题Gowtham – OGHaza
如果您在Android上工作,你可以使用此方法: PhoneNumberUtils.isGlobalPhoneNumber("+91.......)
或尝试做这样的事情,如果你真的想用正则表达式:
if (match("^0[0-9]{9}") || match("^+91[0-9]{10}") || match("^0091[0-9]{9}"))
谢谢你的好逻辑,我给了upvote –
使用下面的代码( test.matches(..)是重要的部分):
String test = "00911234567891";
System.out.println(test.matches("(0091|0|\\+91)[7-9][0-9]{9}"));
对不起,没有工作 –
为什么/究竟是什么?我试了一下,它对于0091 +数字,0 +数字和+91 +数字返回了真。 –
啊我现在看到了这个问题。你区分移动和正常号码。如何识别手机号码? –
这个正则表达式应该可以工作。
您可以使用^([0]|\+91)?\d{10}
作为开头0
或+91
和10
之后的数字。
据我所知,OP不希望匹配2(和你的正则表达式2)逗号分隔的数字。 – OGHaza
对不起,我已经有0和+91的工作,我需要0091工作在相同的正则表达式 –
想这正则表达式将工作:
^((0091)|(\+91)|(0))([7-9]{1})([0-9]{9})$
不,我还没有尝试过任何 –
你尝试玩弄一个正则表达式的测试网站,如:http://regexpal.com/? – Yaneeve