validate method
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;
}