validate method

String? validate(
  1. String? value
)

Implementation

String? validate(String? value) {
  // 条件校验:如果不满足条件,跳过校验
  if (condition != null && !condition!()) {
    return null;
  }

  // 自定义校验优先
  if (customValidator != null) {
    // 先检查必填
    if ((mustFill != null && mustFill != false) &&
        (value == null || value.isEmpty)) {
      return emptyTip;
    }
    return customValidator!(value);
  }

  // 必填校验
  if ((mustFill != null && mustFill != false) &&
      (value == null || value.isEmpty)) {
    return emptyTip;
  }

  // 如果不是必填且为空,则通过校验
  if ((mustFill == null || mustFill == false) &&
      (value == null || value.isEmpty)) {
    return null;
  }

  // 正则表达式校验
  if (regExp != null) {
    if (StrUtils.isEmpty(value) && mustFill!) {
      return emptyTip;
    }
    if(StrUtils.isNotEmpty(value) && !mustFill! && !regExp!.hasMatch(value!)) {
      return errorMsg;
    }

    if (mustFill! && !regExp!.hasMatch(value!)) {
      return errorMsg;
    }
    return null;
  }

  // 长度校验
  if (format == null && errorMsg != null) {
    if (minLength != null && value!.length < minLength!) {
      return errorMsg;
    }
    if (maxLength != null && value!.length > maxLength!) {
      return errorMsg;
    }
  }

  // 格式化错误消息
  if (format != null) {
    if (minLength != null && value!.length < minLength!) {
      return _strFormat();
    }
    if (maxLength != null && value!.length > maxLength!) {
      return _strFormat();
    }
  }

  return null;
}