passwordWithRequirements static method
Validates password with custom requirements
Example:
Validators.passwordWithRequirements(
value,
minLength: 8,
requireUppercase: true,
requireLowercase: true,
requireNumber: true,
requireSpecial: true,
);
Implementation
static String? passwordWithRequirements(
String? value, {
int minLength = 8,
bool requireUppercase = false,
bool requireLowercase = false,
bool requireNumber = false,
bool requireSpecial = false,
String? message,
}) {
if (value == null || value.isEmpty) return null;
if (value.length < minLength) {
return message ?? 'Password must be at least $minLength characters';
}
if (requireUppercase && !value.contains(RegExp(r'[A-Z]'))) {
return message ?? 'Password must contain at least one uppercase letter';
}
if (requireLowercase && !value.contains(RegExp(r'[a-z]'))) {
return message ?? 'Password must contain at least one lowercase letter';
}
if (requireNumber && !value.contains(RegExp(r'[0-9]'))) {
return message ?? 'Password must contain at least one number';
}
if (requireSpecial && !value.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'))) {
return message ?? 'Password must contain at least one special character';
}
return null;
}