isCreditCard property
bool
get
isCreditCard
Returns true if string is a valid credit card number
Implementation
/// Returns true if string is a valid credit card number
bool get isCreditCard {
final clean = this.replaceAll(RegExp(r'[^0-9]'), '');
if (clean.length < 13 || clean.length > 19) return false;
// Luhn algorithm
int sum = 0;
bool even = false;
for (int i = clean.length - 1; i >= 0; i--) {
int digit = int.parse(clean[i]);
if (even) digit *= 2;
if (digit > 9) digit -= 9;
sum += digit;
even = !even;
}
return sum % 10 == 0;
}