验证身份证号有效性

只验证了18位

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public static boolean isValid(String str) {
if (str == null || str.length() != 18) {
return false;
}
int WEIGHTS[] = {
7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2
};
char CHECK[] = {
'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'
};
int sum = 0;
for (int index = 0; index < 17; index++) {
if (str.charAt(index) < '0' || str.charAt(index) > '9') {
return false;
}
sum += str.charAt(index) * WEIGHTS[index];
}
if (CHECK[sum % 11] != Character.toUpperCase(str.charAt(str.length() - 1))) {
return false;
}
return true;
}
public static boolean isValid(String str) { if (str == null || str.length() != 18) { return false; } int WEIGHTS[] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; char CHECK[] = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' }; int sum = 0; for (int index = 0; index < 17; index++) { if (str.charAt(index) < '0' || str.charAt(index) > '9') { return false; } sum += str.charAt(index) * WEIGHTS[index]; } if (CHECK[sum % 11] != Character.toUpperCase(str.charAt(str.length() - 1))) { return false; } return true; }
public static boolean isValid(String str) {  
        if (str == null || str.length() != 18) {
            return false;
        }

        int WEIGHTS[] = {
                7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2
        };
        char CHECK[] = {
                '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'
        };
        int sum = 0;
        for (int index = 0; index < 17; index++) {
            if (str.charAt(index) < '0' || str.charAt(index) > '9') {
                return false;
            }
            sum += str.charAt(index) * WEIGHTS[index];
        }
        if (CHECK[sum % 11] != Character.toUpperCase(str.charAt(str.length() - 1))) {
            return false;
        }

        return true;
    }

 

Leave a Reply

Your email address will not be published. Required fields are marked *