validate method
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";
}
}