import java.util.regex.Pattern;
public class BankcardValidateTest {
private final static Pattern bank_reg_p = Pattern.compile("^\\d{12,26}$");
private final static Pattern bank_reg_p_find = Pattern.compile("\\d{12,}");
/**
* 判断是否为银行卡号
* @param dataString
* @return
*/
public static boolean support(String dataString) {
int length = dataString.length();
return isBankCard(dataString) && getBankCardCheckCode(dataString.substring(0, length - 1), dataString.charAt(length - 1));
}
public static boolean isBankCard(String dataString) {
return bank_reg_p.matcher(dataString).matches();
}
public static Pattern getRegFind() {
return bank_reg_p_find;
}
/**
* 银行卡校验位计算,并验证
* @param nonCheckCodeCardId
* @param c
* @return
*/
private static boolean getBankCardCheckCode(String nonCheckCodeCardId, char c) {
char[] chs = nonCheckCodeCardId.trim().toCharArray();
Java实现银行卡号校验
于 2022-08-31 17:30:44 首次发布
该博客介绍了一个Java类`BankcardValidateTest`,用于验证银行卡号的合法性。通过正则表达式匹配银行卡号格式,并使用LUHN算法计算校验位,以确保银行卡号正确。

最低0.47元/天 解锁文章
959

被折叠的 条评论
为什么被折叠?



