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程序设计有所帮助。