Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中使用luhn算法获得下一个校验位_Javascript_Luhn_Check Digit - Fatal编程技术网

如何在javascript中使用luhn算法获得下一个校验位

如何在javascript中使用luhn算法获得下一个校验位,javascript,luhn,check-digit,Javascript,Luhn,Check Digit,下面的代码使用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 =

下面的代码使用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;
}

我需要另一个函数,该函数通过给出四位数字来生成下一个校验位,因此第五位数字将是下一位校验和。

通过将当前函数修改为该函数,我可以得到下一个校验位:

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;
}

“我需要另一个功能”我明白,但你能发布你到目前为止尝试了什么吗?看看@evolutionxbox我还没有尝试过任何东西cz我不知道如何实现,实际上我尝试了相同的功能并修改了一点,但没有成功@M98这是我已经拥有的,这个函数根据luhn算法检查数字是否有效,我需要创建数字,包括checksum@M98哦,我看到下面的评论告诉我们如何生成一个,成功了,thnx:)Perfecto!很高兴看到你第一次回答了一个问题,你也可以接受你的答案为正确答案。堆栈溢出是一个开放的社区,这就是我喜欢它的原因+1给你