信用卡校验代码:js使用Luhn算法验证信用卡卡号是否有效?

发布时间:2019-12-10编辑:脚本学堂
javascrtip验证信用卡卡号是否有效的方法,这里使用Luhn算法验证信用卡卡号的真假,分享了二个例子,供大家学习参考。

例1,Luhn算法验证信用卡卡号是否有效。

复制代码 代码示例:
var LuhnCheck = (function()
{
var luhnArr = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9];
return function(str)
{
var counter = 0;
var incNum;
var odd = false;
var temp = String(str).replace(/[^d]/g, "");
if ( temp.length == 0)
return false;
for (var i = temp.length-1; i >= 0; --i)
{
incNum = parseInt(temp.charAt(i), 10);
counter += (odd = !odd)? incNum : luhnArr[incNum];
}
return (counter%10 == 0);
}
})();

例2,简洁版的js代码,验证信用卡有效性
 

复制代码 代码示例:

var luhn10 = function(a,b,c,d,e) {
  for(d = +a[b = a.length-1], e=0; b--;)
c = +a[b], d += ++e % 2 ? 2 * c % 10 + (c > 4) : c;
  return !(d%10)
}

// returns true
luhn10('4111111111111111')

// returns false
luhn10('4111111111111112')