1

在这里,我想要验证以 . 开头+91和之后的手机号码10 digit number。我将添加+91 pincode到edittext中,例如:

edtmobile.append("+91(-)");所以当显示edittext(UI)时已经有+91并且在编辑10位数字之后

我正在使用 Reg Ex 之类的:

String regExPhone = "(+91(-)?|91(-)?|0(-)?)?[0-9]{10}";

但得到如下错误:

E/AndroidRuntime( 1411): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_RULE_SYNTAX near index 2:
E/AndroidRuntime( 1411): (+91(-)?|91(-)?|0(-)?)?[0-9]{10}
E/AndroidRuntime( 1411):   ^

请让我知道我在哪里做错了,还有另一种解决方案。

谢谢。

4

1 回答 1

0

+是正则表达式中的特殊字符,需要转义

尝试

String regExPhone = "(\+91(-)?|91(-)?|0(-)?)?[0-9]{10}";

您也不需要对单个字符进行分组以使它们成为可选的,所以

String regExPhone = "(\+91-?|91-?|0-?)?[0-9]{10}";

会是一样的。

于 2012-08-16T09:15:21.613 回答