<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>
コメント