銀行卡號(hào)Luhn校驗(yàn)算法的JS實(shí)現(xiàn)
摘 要:
摘 要:隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展與普及,作為電子商務(wù)的一部分,網(wǎng)上支付越來越受到人們的關(guān)注。在系統(tǒng)開發(fā)過程中時(shí),如何準(zhǔn)確的錄入銀行卡號(hào)十分關(guān)鍵。使用JavaScript設(shè)計(jì)一段基于Luhn校驗(yàn)算法的腳本,通過瀏覽器客戶端實(shí)現(xiàn)驗(yàn)證,有助于快捷、高效的完成支付。
關(guān)鍵詞:
關(guān)鍵詞:網(wǎng)上支付 銀行卡號(hào) JavaScript Luhn算法
在網(wǎng)上支付系統(tǒng)、學(xué)生在線資助管理系統(tǒng)等基于B/S的信息管理系統(tǒng)中,如果能夠在瀏覽器端進(jìn)行有效的銀行卡號(hào)驗(yàn)證,及時(shí)發(fā)現(xiàn)錯(cuò)誤并給出提示,將不僅有助于提高系統(tǒng)的交互性、提升信息錄入的準(zhǔn)確性,也將大大減輕服務(wù)器的工作壓力。在此,討論一種使用JavaScript腳本語言,基于Luhn校驗(yàn)算法的銀行卡號(hào)驗(yàn)證方法。
1 JavaScript
JavaScript作為一種常用的解釋性腳本語言,廣泛應(yīng)用于客戶端,主要用來給HTML網(wǎng)頁增加動(dòng)態(tài)功能,實(shí)現(xiàn)交互行為。
不同于服務(wù)器端腳本語言,JavaScript主要在用戶的瀏覽器上運(yùn)行并直接顯示結(jié)果,不需要服務(wù)器的支持。這就大大地減輕了服務(wù)器的負(fù)擔(dān),減少了服務(wù)器與客戶端交互時(shí)所需要的帶寬占用量。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,JavaScript客戶端腳本語言所能實(shí)現(xiàn)的功能也越來越強(qiáng)大,得到了越來越廣泛的應(yīng)用。
2 Luhn校驗(yàn)算法
根據(jù)中國人民銀行在其頒布的《銀行卡發(fā)卡行標(biāo)識(shí)代碼及卡號(hào)》相關(guān)規(guī)定,標(biāo)識(shí)發(fā)卡機(jī)構(gòu)和持卡人信息的號(hào)碼由發(fā)卡行標(biāo)識(shí)代碼、自定義位和校驗(yàn)位三部分組成。校驗(yàn)位計(jì)算根據(jù)的是Luhn計(jì)算模10“隔位2倍加”校驗(yàn)數(shù)的公式。
Luhn算法是一種主要用來計(jì)算銀行卡等證件號(hào)碼合法性的校驗(yàn)算法,其主要計(jì)算思路分三步。第一,從卡號(hào)最后一位數(shù)字開始,將偶數(shù)位數(shù)字乘以2。如果乘以2的結(jié)果是兩位數(shù),將該兩位數(shù)的個(gè)、十位數(shù)字相加保存,奇數(shù)位數(shù)字不變。第二,把所有數(shù)字相加,求得總和。第三,如果上述求得的總和可以被10整除,則該銀行卡號(hào)碼驗(yàn)證合法;反之,驗(yàn)證失敗。
3 算法實(shí)現(xiàn)
根據(jù)Luhn校驗(yàn)算法原理,設(shè)計(jì)JavaScript腳本語言代碼主要如下所示:
function checkID(){
var id=document.frmMain.txtID.value;
var idLen=id.length;
if(idLen==0){
alert("卡號(hào)不得為空");
return false;
}
else{
var sum=0;
var count=0;
var num;
for(i=idLen-1;i>=0;i--){
num=parseInt(id.charAt(i));
count++;
if(count%2==0){
num*=2;
if(num>9){
num=num%10+Math.floor(num/10);
}}
sum+=num;
}}
if(sum%10==0){
alert("驗(yàn)證通過");
return true;
}
else{
alert("驗(yàn)證錯(cuò)誤");
return false;
}}
4 結(jié)語
利用JavaScript腳本語言編寫并實(shí)現(xiàn)基于Luhn校驗(yàn)算法的銀行卡號(hào)校驗(yàn)功能,方法較為簡單,實(shí)現(xiàn)效果好。同時(shí),將驗(yàn)證工作在用戶瀏覽器端完成,,也能極大地降低服務(wù)器的負(fù)擔(dān),提高整個(gè)B/S信息管理系統(tǒng)的工作效率。其實(shí),在使用計(jì)算機(jī)處理信息的過程中,還能將Luhn校驗(yàn)算法應(yīng)用于C/S系統(tǒng)或借助VBA技術(shù)應(yīng)用到Office辦公中,必將更加全面、有效的對(duì)銀行卡號(hào)進(jìn)行正確性驗(yàn)證,顯著提高信息處理的效率。
參考文獻(xiàn)
[1]劉志勇.JavaScript從入門到精通[M].北京:化學(xué)工業(yè)出版社,2009.
[2]中國人民銀行.JR/T 0008-2000,中華人民共和國金融行業(yè)標(biāo)準(zhǔn),2000.
[3]百度百科.JavaScript[EB/OL]. ,2014.
[4]百度百科.Luhn[EB/OL].,2014.
[5]王凱.基于Luhn算法的銀行卡號(hào)批量校驗(yàn)[J].數(shù)字化用戶,2014(13).
本文編號(hào):14546
本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/14546.html