使用 spring 引导的自定义移动验证器

Custom mobile validator using spring boot

大家好,我正在尝试创建自定义移动验证器。但每次正则表达式是否为真,它都会返回假。你能帮我吗

public class MobileValidator implements ConstraintValidator<MobileValidation, String> {


    public boolean isValid(String value, ConstraintValidatorContext context) {
        Pattern regex = Pattern.compile("^[6-9]\d{9}$");
        Matcher match = regex.matcher(value);
        if(value != null && !value.equals(match.matches())){
            System.out.println(context);
            return false;
        }

        return true;
    }

match.matches() returns 表示模式是否匹配的布尔值;你不需要将它与结果进行比较,你应该只使用布尔值:

public boolean isValid(String value, ConstraintValidatorContext context) {
    Pattern regex = Pattern.compile("^[6-9]\d{9}$");
    Matcher match = regex.matcher(value);
    if (match.matches()) {
        System.out.println(context);
        return false;
    }

    return true;
}
public boolean isValid(String value, ConstraintValidatorContext context) {
    Pattern regex = Pattern.compile("^[6-9]\d{9}$");
    Matcher match = regex.matcher(value);
    if (StringUtil.isNotBlank(value) && match.matches()) {
        System.out.println(context);
        return false;
    }

    return true;
}

函数Pattern.matcher不是return值字符串,请使用:

public boolean isValid(String value, ConstraintValidatorContext context) { 模式 pattern = Pattern.compile("^[6-9]\d{9}$");

return null != value && pattern.matcher(value).matches(); }