1

无效的转义序列(有效的是 \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 应用程序。请帮忙...

4

1 回答 1

9

你的反斜杠需要被转义——

Pattern numberPattern = Pattern.compile("^((\\+){0,1}91(\\s){0,1}(\\-){0,1}(\\s){0,1})?([0-9]{10})$");

这是因为 Java 使用\字符作为转义字符,要告诉它你的意思是真正的意思\而不是转义字符,你必须写\\.

于 2013-01-23T06:45:52.610 回答