passes method

  1. @override
FutureOr<bool> passes(
  1. ValidationContext context
)
override

Validates the value using the given context.

Returns true if valid, otherwise false.

Implementation

@override
FutureOr<bool> passes(ValidationContext context) {
  final value = context.value;
  if (value == null || value is! String) return false;

  if (value.length < minLength) return false;
  if (requireUppercase && !value.contains(RegExp(r'[A-Z]'))) return false;
  if (requireLowercase && !value.contains(RegExp(r'[a-z]'))) return false;
  if (requireNumbers && !value.contains(RegExp(r'[0-9]'))) return false;
  if (requireSymbols && !value.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'))) {
    return false;
  }

  return true;
}