import java.util.regex.Pattern;
public class IdCardValidate {
private static final int[] weight = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 };
private static final char[] checkCode = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
private static final Pattern Idcard_15 = Pattern.compile("^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9Xx]$");
private static final Pattern Idcard_18 = Pattern
.compile("^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$");
private final static Pattern Idcard_18_find = Pattern.compile("\\d{18,}");
public static boolean isIdCard_18(String dataString) {
return Idcard_18.matche
Java身份证号校验,带校验位
于 2022-08-31 17:49:39 首次发布