validatePassword static method

String? validatePassword(
  1. String? value, {
  2. int minLength = 6,
  3. bool requireUppercase = true,
  4. bool requireLowercase = true,
  5. bool requireNumbers = true,
  6. bool requireSpecialChars = false,
})

Implementation

static String? validatePassword(
  String? value, {
  int minLength = 6,
  bool requireUppercase = true,
  bool requireLowercase = true,
  bool requireNumbers = true,
  bool requireSpecialChars = false,
}) {
  if (value == null || value.isEmpty) {
    return 'Password is required.';
  }

  // Check for minimum password length
  if (value.length < minLength) {
    return 'Password must be at least $minLength characters long.';
  }

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

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

  // Check for numbers
  if (requireNumbers && !value.contains(RegExp(r'[0-9]'))) {
    return 'Password must contain at least one number.';
  }

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

  return null;
}