關於銀行卡號的驗證,翻了一下,大多都是使用的luhn演算法,對於一些地方性銀行可能不太適用,或者說像我們這次,還需要驗證是否是借記卡。
最後只能驗證銀行卡號Bin號的合法性,這裡使用阿里提供的驗證Bin號的免費介面:
https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardBinCheck=true
程式碼如下:
var bank = /^\d+$/;
if (!bank.test(bankCode) || bankCode == "") {//bankCode為銀行卡號
alert("請輸入正確的銀行卡號");
return false;
}else{
$.ajax({
dataType:'json',
type:'get',
url:'https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardBinCheck=true',
data:{cardNo:bankCode},
success:function(data){
if(data.validated == false){
alert("請輸入正確的銀行卡號");
return false;
}else if(data.validated == true){
if(data.cardType == 'DC'){
return true;
}else{
alert("請輸入儲蓄卡卡號!");
return false;
}
}
}
})
}複製程式碼
這裡說明一下,DC為借記卡,CC為信用卡。
如有更好的方法,歡迎補充!