validateCardNumber static method

bool validateCardNumber(
  1. String cardNumber
)

Validates Iranian bank card number @param cardNumber The card number to validate @returns bool True if valid Example: PersianTools.validateCardNumber("6219861034567890") => true

Implementation

static bool validateCardNumber(String cardNumber) {
  if (cardNumber.length != 16 || int.parse(cardNumber.substring(1, 11)) == 0) return false;
  int sum = 0;
  for (int i = 0; i < 16; i++) {
    final int multiplier = i.isEven ? 2 : 1;
    final int subDigit = int.parse(cardNumber[i]) * multiplier;
    sum += subDigit > 9 ? subDigit - 9 : subDigit;
  }
  return sum % 10 == 0;
}