我应该执行以下操作:在validateCardNumber函数上方创建一个validateWithLuhn函数。它应该采用digits参数,该参数将信用卡号表示为16个整数的数组。根据数字是否有效(包括大于或小于16位数字或数字和无效字符的混合),应返回true或false。
到目前为止,粘贴的代码是我现在所拥有的,但是我得到了一个错误,说您的“ validateWithLuhn”功能未正确验证指定的卡号。请参阅说明。
const validateWithLuhn = (digits) => {
let num = digits;
let numChar = 0;
let total = 0;
if (/[^0-9-\s]+/.test(num)) {
return false;
}
num = num.split("").map(Number);
for (c = num.length -1; c >= 0; c--) {
numChar = num.charAt(c);
numChar *= 2;
if (numChar > 9){
numChar -= 9;
}
total += numChar;
}
if(total % 10 == 0){
return true;
}
else{
return false;
}
}