可以使用如下代码来验证身份证号码是否合法:

public static boolean isIDCard(String idCard) {
    ' 身份证号码正则表达式
    String idCardRegex = "^\d{17}[\d|x|X]$";
    ' 判断身份证号码是否符合正则表达式
    if (!idCard.matches(idCardRegex)) {
        return false;
    }
    ' 计算校验码
    char[] idCardArray = idCard.toCharArray();
    int[] weightArray = new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
    char[] checkCodeArray = new char[]{'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
    int sum = 0;
    for (int i = 0; i < idCardArray.length - 1; i++) {
        int num = Character.getNumericValue(idCardArray[i]);
        sum += num * weightArray[i];
    }
    int mod = sum % 11;
    char checkCode = checkCodeArray[mod];
    ' 判断校验码是否正确
    if (idCardArray[17] != checkCode) {
        return false;
    }
    return true;
}

该方法中,首先使用正则表达式判断身份证号码是否符合规范,然后计算身份证号码的校验码,最后判断校验码是否正确。


原文地址: https://www.cveoy.top/t/topic/nSB3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录