validate method
校验 value,返回错误文案;null 表示通过。label 用于默认文案。
Implementation
String? validate(Object? value, String label) {
final String text = value?.toString() ?? '';
if (isRequired && text.trim().isEmpty) {
return message ?? '$label 是必填项';
}
final int? min = minLength;
if (min != null && text.length < min) {
return message ?? '$label 至少 $min 个字符';
}
final int? max = maxLength;
if (max != null && text.length > max) {
return message ?? '$label 至多 $max 个字符';
}
final int? exact = length;
if (exact != null && text.length != exact) {
return message ?? '$label 长度须为 $exact 个字符';
}
final RegExp? regex = pattern;
if (regex != null && text.isNotEmpty && !regex.hasMatch(text)) {
return message ?? '$label 格式不正确';
}
return validator?.call(value);
}