类 IDCardUtils


  • public final class IDCardUtils
    extends java.lang.Object
    detail: 居民身份证工具类
    作者:
    AbrahamCaiJin, Ttt
    • 方法概要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 说明
      static java.lang.String convert15CardTo18​(java.lang.String idCard)
      将 15 位身份证号码转换为 18 位
      static int getAgeByIdCard​(java.lang.String idCard)
      根据身份编号获取年龄
      static java.lang.String getBirthByIdCard​(java.lang.String idCard)
      根据身份编号获取生日
      static java.lang.String getBirthdayByIdCard​(java.lang.String idCard)
      根据身份编号获取生日
      static java.lang.String getCheckCode18​(int sum)
      将 POWER 和值与 11 取模获取余数进行校验码判断
      static java.lang.String getDateByIdCard​(java.lang.String idCard)
      根据身份编号获取生日 ( 天数 )
      static java.lang.String getGenderByIdCard​(java.lang.String idCard)
      根据身份编号获取性别
      static java.lang.String getMonthByIdCard​(java.lang.String idCard)
      根据身份编号获取生日 ( 月份 )
      static int getPowerSum​(int[] data)
      将身份证的每位和对应位的加权因子相乘之后, 再获取和值
      static java.lang.String getProvinceByIdCard​(java.lang.String idCard)
      根据身份编号获取户籍省份
      static java.lang.String getYearByIdCard​(java.lang.String idCard)
      根据身份编号获取生日 ( 年份 )
      static boolean validateCard​(java.lang.String idCard)
      验证身份证是否合法
      static boolean validateHKCard​(java.lang.String idCard)
      验证香港身份证号码 ( 部份特殊身份证无法检查 ) 身份证前 2 位为英文字符, 如果只出现一个英文字符则表示第一位是空格, 对应数字 58 前 2 位英文字符 A-Z 分别对应数字 10-35 最后一位校验码为 0-9 的数字加上字符 "A", "A" 代表 10 将身份证号码全部转换为数字, 分别对应乘 9-1 相加的总和, 整除 11 则证件号码有效
      static java.lang.String[] validateIdCard10​(java.lang.String idCard)
      判断 10 位数的身份证号, 是否合法
      static boolean validateIdCard15​(java.lang.String idCard)
      身份证校验规则, 验证 15 位身份编码是否合法
      static boolean validateIdCard18​(java.lang.String idCard)
      身份证校验规则, 验证 18 位身份编码是否合法
      static boolean validateTWCard​(java.lang.String idCard)
      验证台湾身份证号码
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 字段详细资料

      • CHINA_ID_MIN_LENGTH

        public static final int CHINA_ID_MIN_LENGTH
        另请参阅:
        常量字段值
      • CHINA_ID_MAX_LENGTH

        public static final int CHINA_ID_MAX_LENGTH
        另请参阅:
        常量字段值
    • 方法详细资料

      • validateIdCard15

        public static boolean validateIdCard15​(java.lang.String idCard)
        身份证校验规则, 验证 15 位身份编码是否合法
        参数:
        idCard - 待验证身份证号码
        返回:
        true yes, false no
      • validateIdCard18

        public static boolean validateIdCard18​(java.lang.String idCard)
        身份证校验规则, 验证 18 位身份编码是否合法
        参数:
        idCard - 待验证身份证号码
        返回:
        true yes, false no
      • convert15CardTo18

        public static java.lang.String convert15CardTo18​(java.lang.String idCard)
        将 15 位身份证号码转换为 18 位
        参数:
        idCard - 15 位身份编码
        返回:
        18 位身份编码
      • validateTWCard

        public static boolean validateTWCard​(java.lang.String idCard)
        验证台湾身份证号码
        参数:
        idCard - 身份证号码
        返回:
        true yes, false no
      • validateHKCard

        public static boolean validateHKCard​(java.lang.String idCard)
        验证香港身份证号码 ( 部份特殊身份证无法检查 ) 身份证前 2 位为英文字符, 如果只出现一个英文字符则表示第一位是空格, 对应数字 58 前 2 位英文字符 A-Z 分别对应数字 10-35 最后一位校验码为 0-9 的数字加上字符 "A", "A" 代表 10 将身份证号码全部转换为数字, 分别对应乘 9-1 相加的总和, 整除 11 则证件号码有效
        参数:
        idCard - 身份证号码
        返回:
        true yes, false no
      • validateIdCard10

        public static java.lang.String[] validateIdCard10​(java.lang.String idCard)
        判断 10 位数的身份证号, 是否合法
        参数:
        idCard - 身份证号码
        返回:
        true yes, false no
      • validateCard

        public static boolean validateCard​(java.lang.String idCard)
        验证身份证是否合法
        参数:
        idCard - 身份证号码
        返回:
        true yes, false no
      • getAgeByIdCard

        public static int getAgeByIdCard​(java.lang.String idCard)
        根据身份编号获取年龄
        参数:
        idCard - 身份编号
        返回:
        年龄
      • getBirthByIdCard

        public static java.lang.String getBirthByIdCard​(java.lang.String idCard)
        根据身份编号获取生日
        参数:
        idCard - 身份编号
        返回:
        生日 (yyyyMMdd)
      • getBirthdayByIdCard

        public static java.lang.String getBirthdayByIdCard​(java.lang.String idCard)
        根据身份编号获取生日
        参数:
        idCard - 身份编号
        返回:
        生日 (yyyyMMdd)
      • getYearByIdCard

        public static java.lang.String getYearByIdCard​(java.lang.String idCard)
        根据身份编号获取生日 ( 年份 )
        参数:
        idCard - 身份编号
        返回:
        生日 (yyyy)
      • getMonthByIdCard

        public static java.lang.String getMonthByIdCard​(java.lang.String idCard)
        根据身份编号获取生日 ( 月份 )
        参数:
        idCard - 身份编号
        返回:
        生日 (MM)
      • getDateByIdCard

        public static java.lang.String getDateByIdCard​(java.lang.String idCard)
        根据身份编号获取生日 ( 天数 )
        参数:
        idCard - 身份编号
        返回:
        生日 (dd)
      • getGenderByIdCard

        public static java.lang.String getGenderByIdCard​(java.lang.String idCard)
        根据身份编号获取性别
        参数:
        idCard - 身份编号
        返回:
        性别 男 (M)、女 (F)、未知 (N)
      • getProvinceByIdCard

        public static java.lang.String getProvinceByIdCard​(java.lang.String idCard)
        根据身份编号获取户籍省份
        参数:
        idCard - 身份编码
        返回:
        省级编码
      • getPowerSum

        public static int getPowerSum​(int[] data)
        将身份证的每位和对应位的加权因子相乘之后, 再获取和值
        参数:
        data - byte[] 数据
        返回:
        身份证编码, 加权引子
      • getCheckCode18

        public static java.lang.String getCheckCode18​(int sum)
        将 POWER 和值与 11 取模获取余数进行校验码判断
        参数:
        sum - getPowerSum(int[])
        返回:
        校验位