isCreditCard property

bool get isCreditCard

Checks if the string is a valid credit card number.

Uses Luhn algorithm to validate the credit card number.

Implementation

bool get isCreditCard {
  // Remove any non-digit characters
  final sanitized = replaceAll(RegExp(r'\D'), '');
  if (sanitized.length < 13 || sanitized.length > 19) return false;

  // Luhn algorithm implementation
  int sum = 0;
  bool alternate = false;
  for (int i = sanitized.length - 1; i >= 0; i--) {
    int digit = int.parse(sanitized[i]);
    if (alternate) {
      digit *= 2;
      if (digit > 9) digit -= 9;
    }
    sum += digit;
    alternate = !alternate;
  }
  return sum % 10 == 0;
}