function validcc(ccnum)
{
var valid2 = new Boolean(true);
var nums = new Array();
var checknum = 0;
if (ccnum.length != 16)
{
valid2=false;
}
for (var v=0; v<16; v+2)
{
nums[v] = (ccnum.slice(v,v+1)*2)
if (nums[v]>9)
{
nums[v] = (nums[v].slice(0,1) + nums[v].slice(1,2));
}
}
for (var i=1; i<16; i+2)
{
nums[i] = (ccnum.slice(i,i+1));
}
for (var j=0; j<16; j++)
{
checknum = checknum + nums[j];
}
var rem = checknum%10;
if (rem !=0)
{
valid2=false;
}
return valid2;
}
这是检查给出的信用卡号是否有效的功能! 我还有其他功能,但他们都工作正常,直到我添加这个不知道是什么问题请帮助!
答案 0 :(得分:2)
所有循环:for (var v=0; v<16; v+2)
没有递增控制变量,因此永远循环。
你会:
for (var v = 0; v < 16; v += 2)
请注意,并非所有的卡号都是16位数。
有许多用JavaScript编写的luhn检查,或许找到一个经过验证的检查。