java正则判断银行卡号,验证银行卡号正则
时间: 2023-08-29 16:04:37 浏览: 128
java实现验证银行卡的正确性
4星 · 用户满意度95%
可以使用以下正则表达式验证银行卡号:
```
^(\\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,则认为银行卡号有效。
阅读全文