在此,我希望验证手机号码是以+91
开头还是10 digit number
之后。
我将+91 pincode
添加到edittext中,如:
edtmobile.append("+91(-)");
所以当显示编辑文本(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): ^
请让我知道我在哪里犯了错误,还有其他解决办法。
感谢。
答案 0 :(得分:0)
+
是正则表达式中的特殊字符,需要转义
试
String regExPhone = "(\+91(-)?|91(-)?|0(-)?)?[0-9]{10}";
你也不需要将单个字符分组以使它们成为可选字符,所以
String regExPhone = "(\+91-?|91-?|0-?)?[0-9]{10}";
会是一样的。