Cet article vous explique principalement comment vérifier le code du compte de la carte bancaire avec js et jq. Cet article le partage principalement à travers le code. J'espère qu'il pourra aider tout le monde.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf" /> <script type="text/javascript" src="js/jquery.1.8.3.min.js"></script> <title>验证银行账号</title> <style type="text/css"> <!-- .STYLE1 {color: #FF0000} --> </style> <script language="javascript" type="text/javascript"> function check(){ var account = document.form1.account.value; if (account.length < 16 || account.length > 19) { alert("银行卡号长度必须在16到19之间"); //$("#accountInfo").html("银行卡号长度必须在16到19之间"); return false; } var num = /^\d*$/; //全数字 if (!num.exec(account)) { alert("银行卡号必须全为数字"); //$("#accountInfo").html("银行卡号必须全为数字"); return false; } //开头6位 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(account.substring(0, 2))== -1) { alert("银行卡号开头6位不符合规范"); //$("#accountInfo").html("银行卡号开头6位不符合规范"); return false; } var lastNum=account.substr(account.length-1,1);//取出最后一位(与luhm进行比较) var first15Num=account.substr(0,account.length-1);//前15或18位 var newArr=new Array(); for(var i=first15Num.length-1;i>-1;i--){ //前15或18位倒序存进数组 newArr.push(first15Num.substr(i,1)); } var arrJiShu=new Array(); //奇数位*2的积 <9 var arrJiShu2=new Array(); //奇数位*2的积 >9 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();//奇数位*2 >9 的分割之后的数组个位数 var jishu_child2=new Array();//奇数位*2 >9 的分割之后的数组十位数 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; //奇数位*2 < 9 的数组之和 var sumOuShu=0; //偶数位数组之和 var sumJiShuChild1=0; //奇数位*2 >9 的分割之后的数组个位数之和 var sumJiShuChild2=0; //奇数位*2 >9 的分割之后的数组十位数之和 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); //计算Luhm值 var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10; var luhm= 10-k; if(lastNum==luhm){ return true; } else{ return false; } } </script> </head> <body> <form id="form1" name="form1" method="post" action=""> <p>账号: <input type="text" name="account" id="account" /> <span class="STYLE1">* (19位数字)</span></p> <p> <input type="button" name="button" id="button" value="验证" onclick="check()" /> </p> <!--<p id="accountInfo"></p>--> </form> </body> </html>
Recommandations associées :
Interface d'authentification par nom réel de carte bancaire appelant le code PHP exemple
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!