isBankCard static method
验证银行卡号(Luhn算法)
Implementation
static bool isBankCard(String? cardNumber) {
if (cardNumber?.isEmpty ?? true) return false;
final digits =
cardNumber!.replaceAll(' ', '').split('').map(int.tryParse).toList();
if (digits.any((d) => d == null) ||
digits.length < 13 ||
digits.length > 19) {
return false;
}
int sum = 0;
bool alternate = false;
for (int i = digits.length - 1; i >= 0; i--) {
int digit = digits[i]!;
if (alternate) {
digit *= 2;
if (digit > 9) {
digit = (digit % 10) + 1;
}
}
sum += digit;
alternate = !alternate;
}
return sum % 10 == 0;
}