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;
}
此函数检查给定的信用卡号是否有效! 我还有其他功能,但它们都工作正常,直到我添加了这个功能,不知道问题是什么,请帮忙!
最佳答案
所有循环:for (var v=0; v<16; v+2)
不会增加控制变量,因此永远循环。
你会:
for (var v = 0; v < 16; v += 2)
请注意,并非所有卡号都是 16 位数字。
有很多用 JavaScript 编写的 luhn 检查,也许可以找到一个经过验证的。
关于javascript - 信用卡校验和使我的网页崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27064219/