validate method

String? validate(
  1. String password
)

Validate a password against this policy

Returns null if valid, or an error message if invalid.

Implementation

String? validate(String password) {
  if (password.length < minLength) {
    return 'Password must be at least $minLength characters long.';
  }

  if (password.length > maxLength) {
    return 'Password must be no more than $maxLength characters long.';
  }

  if (requireUppercase && !password.contains(RegExp(r'[A-Z]'))) {
    return 'Password must contain at least one uppercase letter.';
  }

  if (requireLowercase && !password.contains(RegExp(r'[a-z]'))) {
    return 'Password must contain at least one lowercase letter.';
  }

  if (requireNumber && !password.contains(RegExp(r'[0-9]'))) {
    return 'Password must contain at least one number.';
  }

  if (requireSpecialChar &&
      !password.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'))) {
    return 'Password must contain at least one special character.';
  }

  return null; // Valid
}