关于银行卡号的验证,翻了一下,大多都是使用的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为信用卡。
如有更好的方法,欢迎补充!