IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    验证身份证号有效性

    coder4发表于 2016-05-10 07:52:26
    love 0
    只验证了18位
    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;
        }
    
     


沪ICP备19023445号-2号
友情链接