お知らせ

CD

<script>
/// <summary>
/// isValid
/// </summary>
/// <params name="cardNumbers">チェックディジットを含む番号</params>
/// <returns>チェックディジットが正しい場合は true、そうでない場合は false</returns>
function isValid(cardNumbers) {
  cardNumbers = Array.from(cardNumbers).reverse();
  let sum = 0;
  let parity = cardNumbers.length % 2;
  for (let i = 1; i < cardNumbers.length; i++) {
    let cardNumber = Number(cardNumbers[i]);
    if (i % 2 != parity) {
      sum += cardNumber;
    } else if (cardNumber > 4) {
      sum += 2 * cardNumber - 9;
    } else {
      sum += 2 * cardNumber;
    }
  }
  return cardNumbers[0] == ((10 - (sum % 10)) % 10);
}
</script>



コメント