validate method

  1. @override
Future<ValidationResult?> validate(
  1. BuildContext context,
  2. String? value,
  3. FormValidationMode state
)
override

Implementation

@override
Future<ValidationResult?> validate(
    BuildContext context, String? value, FormValidationMode state) async {
  if (value == null) {
    return null;
  }
  if (requireDigit && !RegExp(r'\d').hasMatch(value)) {
    return InvalidResult(message ??
        Localizations.of(context, ShadcnLocalizations).formPasswordDigits);
  }
  if (requireLowercase && !RegExp(r'[a-z]').hasMatch(value)) {
    return InvalidResult(message ??
        Localizations.of(context, ShadcnLocalizations).formPasswordLowercase);
  }
  if (requireUppercase && !RegExp(r'[A-Z]').hasMatch(value)) {
    return InvalidResult(message ??
        Localizations.of(context, ShadcnLocalizations).formPasswordUppercase);
  }
  if (requireSpecialChar && !RegExp(r'[\W_]').hasMatch(value)) {
    return InvalidResult(message ??
        Localizations.of(context, ShadcnLocalizations).formPasswordSpecial);
  }
  return null;
}