信用卡校验和崩溃我的网页

时间:2014-11-21 14:59:38

标签: javascript checksum

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

这是检查给出的信用卡号是否有效的功能! 我还有其他功能,但他们都工作正常,直到我添加这个不知道是什么问题请帮助!

1 个答案:

答案 0 :(得分:2)

所有循环:for (var v=0; v<16; v+2)

没有递增控制变量,因此永远循环。

你会:

for (var v = 0; v < 16; v += 2)

请注意,并非所有的卡号都是16位数。

有许多用JavaScript编写的luhn检查,或许找到一个经过验证的检查。