类 SfzhUtil

java.lang.Object
cn.benma666.myutils.SfzhUtil

public class SfzhUtil extends Object
  • 字段详细资料

    • CHINA_ID_MIN_LENGTH

      public static final int CHINA_ID_MIN_LENGTH
      中国公民身份证号码最小长度。
      另请参阅:
    • CHINA_ID_MAX_LENGTH

      public static final int CHINA_ID_MAX_LENGTH
      中国公民身份证号码最大长度。
      另请参阅:
    • cityCode

      public static final String[] cityCode
      省、直辖市代码表
    • power

      public static final int[] power
      每位加权因子
    • verifyCode

      public static final String[] verifyCode
      第18位校检码
    • MIN

      public static final int MIN
      最低年限
      另请参阅:
    • cityCodes

      public static Map<String,String> cityCodes
    • twFirstCode

      public static Map<String,Integer> twFirstCode
      台湾身份首字母对应数字
    • hkFirstCode

      public static Map<String,Integer> hkFirstCode
      香港身份首字母对应数字
  • 构造器详细资料

    • SfzhUtil

      public SfzhUtil()
  • 方法详细资料

    • conver15CardTo18

      public static String conver15CardTo18(String idCard)
      将15位身份证号码转换为18位
      参数:
      idCard - 15位身份编码
      返回:
      18位身份编码
    • validateCard

      public static boolean validateCard(String idCard)
      验证身份证是否合法
    • validateIdCard18

      public static boolean validateIdCard18(String idCard)
      验证18位身份编码是否合法
      参数:
      idCard - 身份编码
      返回:
      是否合法
    • validateIdCard15

      public static boolean validateIdCard15(String idCard)
      验证15位身份编码是否合法
      参数:
      idCard - 身份编码
      返回:
      是否合法
    • validateIdCard10

      public static String[] validateIdCard10(String idCard)
      验证10位身份编码是否合法
      参数:
      idCard - 身份编码
      返回:
      身份证信息数组

      [0] - 台湾、澳门、香港 [1] - 性别(男M,女F,未知N) [2] - 是否合法(合法true,不合法false) 若不是身份证件号码则返回null

    • validateTWCard

      public static boolean validateTWCard(String idCard)
      验证台湾身份证号码
      参数:
      idCard - 身份证号码
      返回:
      验证码是否符合
    • validateHKCard

      public static boolean validateHKCard(String idCard)
      验证香港身份证号码(存在Bug,部份特殊身份证无法检查)

      身份证前2位为英文字符,如果只出现一个英文字符则表示第一位是空格,对应数字58 前2位英文字符A-Z分别对应数字10-35 最后一位校验码为0-9的数字加上字符"A","A"代表10

      将身份证号码全部转换为数字,分别对应乘9-1相加的总和,整除11则证件号码有效

      参数:
      idCard - 身份证号码
      返回:
      验证码是否符合
    • converCharToInt

      public static int[] converCharToInt(char[] ca)
      将字符数组转换成数字数组
      参数:
      ca - 字符数组
      返回:
      数字数组
    • getPowerSum

      public static int getPowerSum(int[] iArr)
      将身份证的每位和对应位的加权因子相乘之后,再得到和值
      参数:
      iArr -
      返回:
      身份证编码。
    • getCheckCode18

      public static String getCheckCode18(int iSum)
      将power和值与11取模获得余数进行校验码判断
      参数:
      iSum -
      返回:
      校验位
    • getAgeByIdCard

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

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

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

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

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

      public static String getGenderByIdCard(String idCard)
      根据身份编号获取性别
      参数:
      idCard - 身份编号
      返回:
      性别
    • getProvinceByIdCard

      public static String getProvinceByIdCard(String idCard)
      根据身份编号获取户籍省份
      参数:
      idCard - 身份编码
      返回:
      省级编码。
    • isNum

      public static boolean isNum(String val)
      数字验证
      参数:
      val -
      返回:
      提取的数字。
    • valiDate

      public static boolean valiDate(int iYear, int iMonth, int iDate)
      验证小于当前日期 是否有效
      参数:
      iYear - 待验证日期(年)
      iMonth - 待验证日期(月 1-12)
      iDate - 待验证日期(日)
      返回:
      是否有效