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;
}