1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
function luhmCheck(bankno){ if (bankno.length < 16 || bankno.length > 19) { return false; } var num = /^\d*$/; if (!num.exec(bankno)) { return false; } var strBin=”10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99″; if (strBin.indexOf(bankno.substring(0, 2))== -1) { return false; } var lastNum=bankno.substr(bankno.length-1,1); var first15Num=bankno.substr(0,bankno.length-1); var newArr=new Array(); for(var i=first15Num.length-1;i>-1;i–){ newArr.push(first15Num.substr(i,1)); } var arrJiShu=new Array(); var arrJiShu2=new Array(); var arrOuShu=new Array(); for(var j=0;j<newArr.length;j++){ if((j+1)%2==1){ if(parseInt(newArr[j])*2<9) arrJiShu.push(parseInt(newArr[j])*2); else arrJiShu2.push(parseInt(newArr[j])*2); } else arrOuShu.push(newArr[j]); } var jishu_child1=new Array(); var jishu_child2=new Array(); for(var h=0;h<arrJiShu2.length;h++){ jishu_child1.push(parseInt(arrJiShu2[h])%10); jishu_child2.push(parseInt(arrJiShu2[h])/10); } var sumJiShu=0; var sumOuShu=0; var sumJiShuChild1=0; var sumJiShuChild2=0; var sumTotal=0; for(var m=0;m<arrJiShu.length;m++){ sumJiShu=sumJiShu+parseInt(arrJiShu[m]); } for(var n=0;n<arrOuShu.length;n++){ sumOuShu=sumOuShu+parseInt(arrOuShu[n]); } for(var p=0;p<jishu_child1.length;p++){ sumJiShuChild1=sumJiShuChild1+parseInt(jishu_child1[p]); sumJiShuChild2=sumJiShuChild2+parseInt(jishu_child2[p]); } sumTotal=parseInt(sumJiShu)+parseInt(sumOuShu)+parseInt(sumJiShuChild1)+parseInt(sumJiShuChild2); var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10; var luhm= 10-k; if(lastNum==luhm){ $(“#banknoInfo”).html(“Luhm验证通过”); return true; } else{ $(“#banknoInfo”).html(“银行卡号必须符合Luhm校验”); return false; } }
|