luhnValid static method

bool luhnValid(
  1. String cardNumber
)

Luhn checksum.

Implementation

static bool luhnValid(String cardNumber) {
  final d = cardNumber.replaceAll(RegExp(r'\D'), '');
  if (d.length < 12 || d.length > 19) return false;
  var sum = 0;
  for (var i = 0; i < d.length; i++) {
    var n = int.parse(d[d.length - 1 - i]);
    if (i.isOdd) {
      n *= 2;
      if (n > 9) n -= 9;
    }
    sum += n;
  }
  return sum % 10 == 0;
}