goja-core/src/main/java/goja/core/kits/IdCardKit.java
public static boolean validateIdCard18(String idCard) {
        boolean bTrue = false;
        if (idCard.length() == CHINA_ID_MAX_LENGTH) {
            // 前17位
            String code17 = idCard.substring(0, 17);
            // 第18位
            String code18 = idCard.substring(17, CHINA_ID_MAX_LENGTH);
            if (isNum(code17)) {
                char[] cArr = code17.toCharArray();
                int[] iCard = converCharToInt(cArr);
                int iSum17 = getPowerSum(iCard);
                // 获取校验位
                String val = getCheckCode18(iSum17);
                if (val.length() > 0) {
                    if (val.equalsIgnoreCase(code18)) {
                        bTrue = true;
                    }
                }
            }
        }
        return bTrue;
    }
public static boolean validateIdCard18(String idCard) {
        boolean bTrue = false;
        if (idCard.length() == CHINA_ID_MAX_LENGTH) {
            // 前17位
            String code17 = idCard.substring(0, 17);
            // 第18位
            String code18 = idCard.substring(17, CHINA_ID_MAX_LENGTH);
            if (isNum(code17)) {
                char[] cArr = code17.toCharArray();
                int[] iCard = converCharToInt(cArr);
                int iSum17 = getPowerSum(iCard);
                // 获取校验位
                String val = getCheckCode18(iSum17);
                if (val.length() > 0) {
                    if (val.equalsIgnoreCase(code18)) {
                        bTrue = true;
                    }
                }
            }
        }
        return bTrue;
    }
public static boolean validateIdCard18 ( String idCard ) { boolean bTrue = false ; if ( idCard . length ( ) == CHINA_ID_MAX_LENGTH ) { // 前17位 String code17 = idCard . substring ( 0 , 17 ) ; // 第18位 String code18 = idCard . substring ( 17 , CHINA_ID_MAX_LENGTH ) ; if ( isNum ( code17 ) ) { char [ ] cArr = code17 . toCharArray ( ) ; int [ ] iCard = converCharToInt ( cArr ) ; int iSum17 = getPowerSum ( iCard ) ; // 获取校验位 String val = getCheckCode18 ( iSum17 ) ; if ( val . length ( ) > 0 ) { if ( val . equalsIgnoreCase ( code18 ) ) { bTrue = true ; } } } } return bTrue ; }
验证18位身份编码是否合法

@param idCard 身份编码
@return 是否合法
验证18位身份编码是否合法