Я пытаюсь выполнить реализацию алгоритма Luhm. У меня есть код C# для JavaScript. Я получил это портировано, и я думал, что это работает, но я не могу получить законные карты для проверки. Мой AMEX проверяет штраф, но мои два VISAs отказываются это делать. Вот код:Реализация алгоритма Луна в JavaScript
luhn = function (number) {
var _deltas = [0, 1, 2, 3, 4, -4, -3, -2, -1, 0],
_checksum = 0,
_digits = [],
i,
j;
while (number != 0) {
_digits.push(parseInt((number % 10), 10));
number = parseInt((number/10), 10);
}
for (i = (_digits.length - 1), j = _digits.length; i > -1; i--) {
_digit = _digits[i];
_checksum += _digit;
_checksum += ((((i - j) % 2) === 0) ? _deltas[_digit] : 0);
}
return ((_checksum % 10) === 0);
};
Может кто-нибудь указать мне в правильном направлении, что не так? Я думал, что это отлично работает в версии C#, но теперь у меня возникают сомнения ... Спасибо заранее!
Подсказка: 'предупреждение (ParseInt ("54511187504546384725", 10))' и [ответ] (http://stackoverflow.com/a/ 12397870/265712). – meze
Это работает с примерами здесь: http://en.wikipedia.org/wiki/Luhn_algorithm, но может не для больших чисел. –