银行卡号正则校验
时间: 2023-07-24 16:19:46 浏览: 163
银行卡号的正则校验可以使用以下正则表达式:
```^(\\d{16}|\\d{19})$```
其中,```\\d{16}```表示16位数字,```\\d{19}```表示19位数字。这个正则表达式表示银行卡号必须是16位或19位数字。
相关问题
js 银行卡号正则校验
在Javascript中,可以使用正则表达式对象进行银行卡号的校验。具体实现代码如下:
```javascript
const regex = /^(\\d{16}|\\d{19})$/;
const cardNumber = '1234567890123456';
if (regex.test(cardNumber)) {
console.log("银行卡号格式正确");
} else {
console.log("银行卡号格式错误");
}
```
这里的正则表达式与前面Java代码中的表达式相同,使用`test()`函数进行匹配,如果匹配成功,则返回true,否则返回false。
java正则判断银行卡号,验证银行卡号正则
可以使用以下正则表达式验证银行卡号:
```
^(\\d{15,20})$
```
其中,`\d` 匹配任意数字,`{15,20}` 表示匹配长度在 15 到 20 之间的数字串,`^` 表示匹配字符串开头,`$` 表示匹配字符串结尾。这个正则表达式可以匹配长度在 15 到 20 位的纯数字银行卡号。
如果需要更精确的银行卡号验证,可以使用 Luhn 算法,具体实现可以参考以下 Java 代码:
```java
public static boolean isValidBankCardNumber(String cardNumber) {
if (cardNumber == null || cardNumber.length() < 15 || cardNumber.length() > 19) {
return false;
}
int sum = 0;
boolean alternate = false;
for (int i = cardNumber.length() - 1; i >= 0; i--) {
int n = Integer.parseInt(cardNumber.substring(i, i + 1));
if (alternate) {
n *= 2;
if (n > 9) {
n = (n % 10) + 1;
}
}
sum += n;
alternate = !alternate;
}
return (sum % 10 == 0);
}
```
这个方法使用 Luhn 算法计算银行卡号校验位,如果校验位为 0,则认为银行卡号有效。
阅读全文