| Current Path : /proc/thread-self/root/var/www/recommendations/www/node_modules/validator/es/lib/ |
| Current File : //proc/thread-self/root/var/www/recommendations/www/node_modules/validator/es/lib/isLuhnValid.js |
import assertString from './util/assertString';
export default function isLuhnValid(str) {
assertString(str);
var sanitized = str.replace(/[- ]+/g, '');
var sum = 0;
var digit;
var tmpNum;
var shouldDouble;
for (var i = sanitized.length - 1; i >= 0; i--) {
digit = sanitized.substring(i, i + 1);
tmpNum = parseInt(digit, 10);
if (shouldDouble) {
tmpNum *= 2;
if (tmpNum >= 10) {
sum += tmpNum % 10 + 1;
} else {
sum += tmpNum;
}
} else {
sum += tmpNum;
}
shouldDouble = !shouldDouble;
}
return !!(sum % 10 === 0 ? sanitized : false);
}