//銀行卡號校驗
//description: 銀行卡號luhm校驗
//luhm校驗規則:16位銀行卡號(19位通用):
// 1.將未帶校驗位的 15(或18)位卡號從右依次編號 1 到 15(18),位於奇數字型大小上的數字乘以 2。
// 2.將奇位乘積的個十位全部相加,再加上所有偶數字上的數字。
// 3.將加法和加上校驗位能被 10 整除。
function luhmcheck(bankno)
var num = /^\d*$/; //全數字
if (!num.exec(bankno))
//開頭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(bankno.substring(0, 2))== -1)
var lastnum=bankno.substr(bankno.length-1,1);//取出最後一位(與luhm進行比較)
var first15num=bankno.substr(0,bankno.length-1);//前15或18位
var newarr=new array();
for(var i=first15num.length-1;i>-1;i--)
var arrjishu=new array(); //奇數字*2的積 <9
var arrjishu2=new array(); //奇數字*2的積 >9
var arroushu=new array(); //偶數字陣列
for(var j=0;jif((j+1)%2==1)
else //偶數字
arroushu.push(newarr[j]);
}var jishu_child1=new array();//奇數字*2 >9 的分割之後的陣列個位數
var jishu_child2=new array();//奇數字*2 >9 的分割之後的陣列十位數
for(var h=0;hjishu_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;msumjishu=sumjishu+parseint(arrjishu[m]);
}for(var n=0;nsumoushu=sumoushu+parseint(arroushu[n]);
}for(var p=0;psumjishuchild1=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)
else
}郵箱驗證 var reg_email=/^[a-za-z0-9](([_\.\-]?[a-za-z0-9]+)*)@([a-za-z0-9]+)(([\.\-]?[a-za-z0-9]+)*)\.([a-za-z])$/;
銀行卡號驗證 php
16 19 位卡號校驗位採用 luhn 校驗方法計算 第一步 把信用卡號倒序 61789372994 第二步 取出倒序後的奇數字置上的號碼,相加等到總和s1。eg s1 6 7 9 7 9 4 42 第三步 取出倒序後的偶數字置上的號碼,每個號碼乘以2。eg 2,16,6,4,18 第四步 把第三步...
驗證銀行卡號正確性的演算法
public static functionluhm cardno lastnum substr cardno,1 取出最後一位 與luhm進行比較 first15num substr cardno,0 1 前15或18位 newarr str split strrev first15num 前15...
銀行卡號規則
答案一 前6位數字為發卡銀行識別號 bin 由iso國際組織統一制定。最後一位是校驗位,由前面組成卡號的十多位數字 常見的iso卡號有13位 16位 19位 通過特定演算法計算。前6位和最後一位之間的數字為金融機構自定義的卡號,有些銀行採用發卡地代號加卡序號的方式編碼 有些銀行的卡則是全國大序列。只...