isCreditCard function
Check if string input
is a credit card or not
Implementation
bool isCreditCard(String input) {
String sanitized = input.replaceAll(r"/[- ]+/g", '');
if (_regExp.hasMatch(sanitized)) {
return false;
}
int sum = 0;
String digit;
int tmpNum;
bool shouldDouble = true;
for (var i = sanitized.length - 1; i >= 0; i--) {
digit = sanitized.substring(i, (i + 1));
tmpNum = int.parse(digit, radix: 10);
if (shouldDouble) {
tmpNum *= 2;
if (tmpNum >= 10) {
sum += ((tmpNum % 10) + 1);
} else {
sum += tmpNum;
}
} else {
sum += tmpNum;
}
shouldDouble = !shouldDouble;
}
return !!((sum % 10) == 0);
}