checkLuhn static method

bool checkLuhn(
  1. String cardNumber
)

Return true if the cardNumber is valid card number, otherwise returns false.

See Luhn algorithm

Implementation

static bool checkLuhn(String cardNumber) {
  var sum = 0;

  var isEven = false;
  for (var i = cardNumber.length - 1; i >= 0; i--) {
    var digit = int.parse(cardNumber[i]);

    if (isEven) {
      digit *= 2;
      if (digit > 9) {
        digit -= 9;
      }
    }

    sum += digit;
    isEven = !isEven;
  }

  return sum % 10 == 0;
}