最近更新了一個項目:關(guān)于銀行卡匹(根據(jù)銀行卡號獲取開戶行以及銀行卡類型等信息)。
背景:
當(dāng)前網(wǎng)絡(luò)上流傳的較多的關(guān)于這俄中需求的工具類,大都較為過時,而且代碼冗雜,獲取到的數(shù)據(jù)格式也不盡讓人滿意,遂更了一個工具類。代碼中多采用正則表達式作為判斷標(biāo)準(zhǔn),對于安卓開發(fā)者可以直接使用BankInfoBean類作為工具類用于自己的項目中,方便,代碼也不會顯得混亂。
原理:
使用了Luhn檢驗數(shù)字算法(Luhn Check Digit Algorithm),也稱作模數(shù)10公式。
算法:
將每個奇數(shù)加倍和使它變?yōu)閱蝹€的數(shù)字,如果必要的話通過減去9和在每個偶數(shù)上加上這些值。如果此卡要有效,那么,結(jié)果必須是10的倍數(shù)。

image

image2.png
在assets文件下分享了幾個文件,方便各位的不同開發(fā)需求。
一個json類型的文件(bankinfo.txt),大家可以根據(jù)該json文件自行擴展;
python校驗所需要的文件(bank_card_util.py)
ios開發(fā)校驗銀行卡號的文件(NSString+BankInfo.m)
該項目簡單清晰,已經(jīng)分享在github上,有興趣的可以了解一下,項目名:BankCardDemo,如果你能star一下,非常感謝。