validate method

Iterable<String> validate(
  1. String password
)

Implementation

Iterable<String> validate(String password) sync* {
  if (password.trim().length != password.length) {
    yield "Password cannot contain leading or trailing whitespace";
  }

  if (password.length < minPasswordLength) {
    yield "Password must be at least $minPasswordLength characters long";
  }

  if (password.length > maxPasswordLength) {
    yield "Password must be no more than $maxPasswordLength characters long";
  }

  if (requireUppercaseLetter && !RegExp(r'[A-Z]').hasMatch(password)) {
    yield "Password must contain at least one uppercase letter";
  }

  if (requireLowercaseLetter && !RegExp(r'[a-z]').hasMatch(password)) {
    yield "Password must contain at least one lowercase letter";
  }

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

  if (requireNumericCharacter && !RegExp(r'[0-9]').hasMatch(password)) {
    yield "Password must contain at least one numeric character";
  }
}