如何使用JavaScript中的Luhn算法获得下一个检查数字



我具有以下代码,如果使用luhn算法模块10。

function isCheckdigitCorrect(value) {
// accept only digits, dashes or spaces
  if (/[^0-9-s]+/.test(value)) return false;
  var nCheck = 0, nDigit = 0, bEven = false;
  value = value.replace(/D/g, "");
  for (var n = value.length - 1; n >= 0; n--) {
    var cDigit = value.charAt(n),
      nDigit = parseInt(cDigit, 10);
    if (bEven) {
      if ((nDigit *= 2) > 9) nDigit -= 9;
    }
    nCheck += nDigit;
    bEven = !bEven;
  }
  return (nCheck % 10) == 0;
}

我需要另一个通过给出四位数的数字来生成下一个检查字数的函数,以便第五位数字是下一个数字校验和。

通过将当前函数修改为此我能够获得下一个checkDigit:

function getCheckDigit(value) {
  if (/[^0-9-s]+/.test(value)) return false;
  var nCheck = 0, nDigit = 0, bEven = true;
  value = value.replace(/D/g, "");
  for (var n = value.length - 1; n >= 0; n--) {
    var cDigit = value.charAt(n),
      nDigit = parseInt(cDigit, 10);
    if (bEven) {
      if ((nDigit *= 2) > 9) nDigit -= 9;
    }
    nCheck += nDigit;
    bEven = !bEven;
  }
  return (1000 - nCheck) % 10;
}

相关内容

  • 没有找到相关文章

最新更新