无效的转义序列(有效转义序列为\ b \ t \ n \ f \ r \“\ \ \ \)
public static final boolean isValidPhoneNumber(CharSequence target) {
if (target == null || TextUtils.isEmpty(target)) {
Pattern numberPattern = Pattern.compile("^((\+){0,1}91(\s){0,1}(\-){0,1}(\s){0,1})?([0-9]{10})$");
Matcher numberMatcher = numberPattern.matcher(target);
return numberMatcher.matches();
}
return false;
}
我使用在线检查的正则表达式工作正常但不能在我的Android应用程序上工作。 Plz帮助...
答案 0 :(得分:9)
您的反斜杠需要转义 -
Pattern numberPattern = Pattern.compile("^((\\+){0,1}91(\\s){0,1}(\\-){0,1}(\\s){0,1})?([0-9]{10})$");
这是因为Java使用\
字符作为转义字符,告诉它你的意思是\
而不是转义字符,你必须写\\
。