嗨,伙計們,我正在嘗試創建自定義移動驗證器。但是每次無論正則運算式是否為真,它都回傳假。你能幫我解決這個問題嗎
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;
}
uj5u.com熱心網友回復:
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;
}
uj5u.com熱心網友回復:
match.matches()回傳一個布林值,表示模式是否匹配;你不需要將它與結果進行比較,你應該只使用布林值:
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;
}
uj5u.com熱心網友回復:
函式 Pattern.matcher 不回傳值字串,請使用:
public boolean isValid(String value, ConstraintValidatorContext context) { Pattern pattern = Pattern.compile("^[6-9]\d{9}$");
return null != value && pattern.matcher(value).matches(); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/381447.html
上一篇:Python子行程沒有將大括號作為引數傳遞?或者雙引號的問題
下一篇:根據位掩碼拆分多個位元組
