银行卡是16位或者19位的正则表达式怎么写

2024-11-22 16:59:36
推荐回答(2个)
回答1:

[0-9]{19}银行卡数字规则:


19位卡号的前六位是各家银行的BIN码,各家银行或同一银行的不同卡种都不同。


7--9位是银行卡的地区码,用来表示银行卡的不同地区。


10---18位是银行卡的顺序码,从1一直排到999999999。


最后一位是校验码,是随机产生的。

根据《中国银联2.0》标准-Q/CUP002-2;Luhn计算模10“隔位2倍加”校验数的公式。
计算步骤如下:


1:从右边第1个数字(低序)开始每隔一位乘以
2


2:把在步骤1中获得的乘积的各位数字与原号码中未乘2的各位数字相加。


3:从邻近的较高的一个以0结尾的数中减去步骤2中所得到的总和。


[这相当于求这个总和的低位数字(个位数)的“
10的补数 ”],
如果在步骤2得到的总和是以零结尾的数(如30、40等等),则校验数字就是零。

回答2:

var reg = /^(\d{16}|\d{19})$/;