VISA和MASTERCARD信用卡卡号通常为16位:
xxxx xxxx xxxx xxxx
第1―6位 为发卡行的 BIN NO.
第7―12位 卡顺序号
第13位 0 代表主卡,1-9 代表副卡
第14位 代表卡结单发出日期
第15位 代表该卡为第几张卡,补发卡后会加1
第16位 检验码
另外至于当中的数字,VISA、MasterCard未作具体规定,由各发卡银行自行定义,因此,不同的发卡行对第13位的定义是不同的。
4907554135652145
12.2010
4334289768847
08/11/2006
?
----------------------------------
4000 0000 0000 0002
----------------------------------
4000 0000 0000 0010
----------------------------------
4000 0000 0000 0200
----------------------------------
4000 0000 0000 1000
----------------------------------
4000 0000 0002 0000
----------------------------------
4000 0000 0010 0000
----------------------------------
4000 0000 0200 0000
----------------------------------
4000 0000 1000 0000
----------------------------------
4000 0002 0000 0000
----------------------------------
4000 0010 0000 0000
----------------------------------
4000 0200 0000 0000
----------------------------------
4000 1000 0000 0000
----------------------------------
4002 0000 0000 0000
----------------------------------
4010 0000 0000 0000
----------------------------------
4200 0000 0000 0000
----------------------------------
4212 1212 1212 1214
????????????????? =8*14+2
-989 8989 8989 898-
1位=>信用卡类型
2位=>
3位=>
4位=>
5位=>
6位=>
7位=>
function checkvisa(v){
?v=v.toString();
if(v.substring(0,1)!="4")return false;
?
cv=2
?for(var i=1;i<v.length-1;i++){
?s=Math.floor(v.substring(i,i+1))
?
?if(i%2==1){
??cv+=9*s?
?}else{
??cv+=8*s
?}
?}
if(cv!=v.substring(15,16)){
?return false;
}
return true;
}
}
function fnCheckVisa() {
??? //VisaCard必须由16位数字组成,首位数字必须以4开头,每四位用-或者空格分隔,正则表达式可以为
??? var re = /^4\d{3}[\s\-]?\d{4}[\s\-]?\d{4}[\s\-]?\d{4}$/;
??? var VisaCard = document.getElementById("visaid").value;
??? if (VisaCard.length > 0 && VisaCard != null) {
??????? if (re.test(VisaCard)) {
??????????? alert("Thanks,您的VisaCard合法!");
??????? }
??????? else {
??????????? alert("Sorry,您的VisaCard有误!");
??????? }
??? }
??? else {
??????? alert("请输入VisaCard!");
??? }
}
?