validate method

String? validate(
  1. Object? value,
  2. String label
)

校验 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);
}