JavaScript实现信用卡校验方法
本文实例讲述了JavaScript实现信用卡校验方法。分享给大家供大家参考。具体分析如下:
这里JavaScript版的信用卡校验代码,采用了Luhn算法
functionisValidCreditCard(type,ccnum){
if(type=="Visa"){
//Visa:length16,prefix4,dashesoptional.
varre=/^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
}elseif(type=="MC"){
//Mastercard:length16,prefix51-55,dashesoptional.
varre=/^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
}elseif(type=="Disc"){
//Discover:length16,prefix6011,dashesoptional.
varre=/^6011-?\d{4}-?\d{4}-?\d{4}$/;
}elseif(type=="AmEx"){
//AmericanExpress:length15,prefix34or37.
varre=/^3[4,7]\d{13}$/;
}elseif(type=="Diners"){
//Diners:length14,prefix30,36,or38.
varre=/^3[0,6,8]\d{12}$/;
}
if(!re.test(ccnum))returnfalse;
//Removealldashesforthechecksum
//checkstoeliminatenegativenumbers
ccnum=ccnum.split("-").join("");
//Checksum("Mod10")
//Addevendigitsinevenlengthstrings
//orodddigitsinoddlengthstrings.
varchecksum=0;
for(vari=(2-(ccnum.length%2));i<=ccnum.length;i+=2){
checksum+=parseInt(ccnum.charAt(i-1));
}
//Analyzeodddigitsinevenlengthstrings
//orevendigitsinoddlengthstrings.
for(vari=(ccnum.length%2)+1;i<ccnum.length;i+=2){
vardigit=parseInt(ccnum.charAt(i-1))*2;
if(digit<10){checksum+=digit;}
else{checksum+=(digit-9);}
}
if((checksum%10)==0)returntrue;elsereturnfalse;
}
希望本文所述对大家的javascript程序设计有所帮助。