最近做一个小项目,涉及到证件号码的校验,虽然目前基本没有15位证件号码,但是项目要求还是需要把15位转18位的问题校验。

原始代码中,有关于15位转18位和18转15位校验的。 本次只涉及15转18位校验。


public class ConvertCard {final static int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1};  static int[] vi = {1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2};  private static int[] ai = new int[18];  // 验证15位18位  public static boolean Verify(String idcard) {  if (idcard.length() == 15) {idcard = uptoeighteen(idcard);   }      if (idcard.length() != 18)   {      return false;     }      String verify = idcard.substring(17, 18);   if (verify.equals(getVerify(idcard)))   {       return true;     }      return false;  }// 得到最后地位校验码  public static String getVerify(String eightcardid) {   int remaining = 0;     if (eightcardid.length() == 18)   {      eightcardid = eightcardid.substring(0, 17);     }    if (eightcardid.length() == 17) {      int sum = 0;      for (int i = 0; i < 17; i++) {   String k = eightcardid.substring(i, i + 1);   ai[i] = Integer.parseInt(k);       }      for (int i = 0; i < 17; i++)   {      sum = sum + wi[i] * (ai[i]);  }      remaining = sum % 11;     }    return remaining == 2 ? "X" : String.valueOf(vi[remaining]);  }  // 15转18位  public static String uptoeighteen(String fifteencardid) {   String eightcardid = fifteencardid.substring(0, 6);  eightcardid = eightcardid + "19";     eightcardid = eightcardid + fifteencardid.substring(6, 15);  eightcardid = eightcardid + getVerify(eightcardid);     return eightcardid;}  public static void main(String[] args){ System.out.println(Verify("360829860812171"));  }  }

java后台证件号15转18位相关推荐

  1. Java:15位或18位居民身份证号码通用校验(正则表达式、日期格式、末尾校验码)

    身份证号码校验,正则表达式校验.日期格式校验.18位身份证末尾校验码校验 前六位省市县号码变更频繁,这里就不做校验 import java.text.ParseException; import ja ...

  2. 身份证验证信息15位或18位

    一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从 ...

  3. js根据15,18位身份证号获取生日与性别

    15位身份证号:第6.7位为年份,8.9位为月份,10.11为日.最后一位为性别,男为奇数,女为偶数.  18位身份证号:第6.7.8.9位为年份,10.11位为月份,12.13为日.最后一位为性别, ...

  4. 15位与18位身份证号码有什么区别和联系

    522529198802252219 身份证号码:共18位组成  1-3位为省级行政区代码  4-6位为市.县级行政区代码  7-10位为出生身年份  11-12位为出生身月份  13-14位为出生身 ...

  5. java:正则表达式匹配IMEI(15或17位)

    国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的手机序列号.手机"串号",用于在移动电话网络中识别每一部 ...

  6. 15位或18位身份证验证

    c#实现的18位身份证格式验证算法 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999<公民身份号码>中做了明确的规定. GB11643-1999< ...

  7. Oracle 通过15位或18位身份证号码计算年龄、出生年月日、性别

    15位身份证号码各位的含义: 地址码(前六位数):表示身份证编码对象常住户口所在省份.地市,以及县(市.旗.区)的行政区划代码,1-2位数字表示所在地省.自治区.直辖市代码,第3.4位数字表示所在地地 ...

  8. 15或18位身份证号码增强校验

    1. 背景简介 目前部分项目用到了增强的身份证号码验证,要验证15位.18位.行政区划.日期合法性.校验位(仅对18位)等特点. 当前i产品仅提供一个函数idcheck可以用来验证身份证合法性,用法为 ...

  9. 15位或18位长度身份证号码JS验证

    免责声明:身份证号为随机组合而成,不会涉及任何隐私泄密问题,也非现实生活中真实的身份证号码:身份证号码所属年龄均为18岁以上,均已通过校验. var IdNum1 = "3205831986 ...

最新文章

  1. 想快速入门NLP?我们测评了15门最火课程,帮你找到最适合的
  2. Lucene教程具体解释
  3. python web-2019年Python Web五大主流框架
  4. xml 名称中不能包含= 字符_可扩展标记语言:XML
  5. Java DataOutputStream writeByte()方法与示例
  6. python复利计算函数_PyThon编程入门:了解python format格式化函数的使用
  7. python 邻接矩阵_阿里巴巴举荐,Python视频,免费分享,用python求解特征向量和拉普拉斯矩阵...
  8. android 之手机拨号器,以及短信发送器的简单实现
  9. 【生活中的逻辑谬误】功利误导和情感误导
  10. 2021-2027全球与中国医疗废物容器市场现状及未来发展趋势
  11. 共享鸡皮疙瘩?庆应大学开发了一种贴身设备,利用腕带和颈带数据,分享刺激感受...
  12. Vue属性书写顺序推荐:
  13. CMD的打开方式以及一些常用的Dos命令
  14. java-清楚明了的集合
  15. 自然语言处理(NLP)之路——概念理解——从 Google translate 的 seq2seq 看自然语言处理(NLP)的发展
  16. macbook系统占用硬盘大_解决macos双系统情况下重制macos系统导致windows系统盘一直占用的情况...
  17. 解决方案之Android 国际化资源完美兼容6.0,7.0,8.0
  18. AStar 拐点 算法实现AI寻路
  19. 垂直水平居中的几种实现方式
  20. 计算机网络技术基础篇

热门文章

  1. 腾讯云-视频直播(android集成)
  2. MySQL索引详解之索引的数据结构
  3. Latex参考文献问题---参考文献条数不显示
  4. 【数据库】MySQL 加锁处理分析
  5. 速学大学计算机基本内容(一)有图
  6. 计算机制作节日贺卡教案,幼儿园节日教案:做贺卡
  7. Eclipse TPTP平台配置详细步骤Ver1.0
  8. 1.3 QT界面美化
  9. ffmpeg 实现 视频与gif互转
  10. 少儿编程培训 python