校验身份证合法性(18位与15位互转)
身份证15位与18位互转
最近在做一项目,用户可能用的是18位身份证号查询信息,但是登记的时候用的是15位身份证号登记的 ,想了好久最终,想到在后台获取到身份证号,通过工具类转化,18位转15位,这样取到两种身份证号,传到数据库用 OR 条件拼接就好了
package com.until;
/*** 15位及18位身份证互转类* @author * @date 2020/07/20**/
public class IDCardUtil {private IDCardUtil(){//todo}/*** 15位身份证转18位* @param idCard* @return*///15位转18位的,需要一个15位的身份证号参数public static String getIdCardfrom15to18(String idCard15){StringBuffer idCard18 = new StringBuffer(idCard15);// 校验码值char[] checkBit = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3','2' };int sum = 0;if(idCard15.length() != 15){throw new RuntimeException("the length of idcard is not 15");}idCard18.insert(6, "19");for(int i = 0; i < idCard18.length(); i++){char c = idCard18.charAt(i);int num = c - '0';//获取当前权重int weight = (int)(Math.pow(2, idCard18.length() - i)) % 11;sum += num * weight;}//sum求模int index = sum % 11;//append校验码idCard18.append(checkBit[index]);return idCard18.toString() ;}//18位转15位的,需要一个18位的身份证号参数public static String getIdCardfrom18to15(String idCard18){StringBuffer idCard15 = new StringBuffer(idCard18);if(idCard15.length() != 18){throw new RuntimeException("the length of idcard is not 18");}idCard15.delete(17, 18);idCard15.delete(6, 8);return idCard15.toString();}
}
校验身份证合法性(18位与15位互转)相关推荐
- 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)
window.checkIdNumber=(function () {var vcity = {11: "北京", 12: "天津", 13: "河北 ...
- js验证身份证合法性(最后一位的校验)
粘之即用,欢迎测试. <!DOCTYPE html> <html><head><meta charset="UTF-8"><t ...
- javascript实现完美身份证号有效性验证15位18位
欢迎各位朋友! 前几天在开发中要求对用户的身份证号进行比较严格的校验,所以才有了这些代码, 下面的这些代码主要包括对身份证长度,地区,出生日期的校验. 方法在return时返回了一个是否通过以及提 ...
- 判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日
package com.demo;public class Demo3 {public static void main(String[] args) {/** 判断身份证:要么是15位,要么是18位 ...
- 身份证号码工具类(15位,18位,10位)
解析身份证信息的工具类,包括获得身份证的出生日期,性别,身份证省份,留作自用 import java.text.ParseException; import java.text.SimpleDateF ...
- Mysql 判断身份证号码是否满足15位或者18位
select * from user where cardno REGEXP '[0-9]{18}|[0-9]{17}X|[0-9]{15}'; 说明--使用正则判断,满足条件18位纯数字或者17位纯 ...
- Java校验身份证合法性 (通过火车票上显示的号码计算身份证号)
今天看到CSDN推送的消息<我用 Python 算出了同事的身份证号码>自己也想用Java写一个! 当然稍稍改一下就能做身份证合法校验! 下面贴代码! package test;impor ...
- js 身份证精确校验(支持15位和18位身份证号 )
js 校验方法 //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码.出生日期.校验位验证 function IdentityCode(code){var city={11:&qu ...
- 简单的关于身份证(15位或者18位)合法性验证
简单的关于身份证(15位或者18位)合法性验证 package com.clark.test.idcard;/*** 测试校验身份证合法性的小程序* <p>我们常用的身份证号码为18位或者 ...
最新文章
- java linux文件夹大小_Linux_Linux文件夹大小查看办法, 1. du -sh查看当前文件 - phpStudy...
- getter方法的作用 vuex_Vuex入门篇——基本使用
- 基于matlab 读取文件夹 保存文件夹
- github怎么自动更新被人更新过的项目_8 个程序员应该掌握的 GitHub 实用技巧
- 今天携程出事了:让我们来学习下http的响应码
- c语言下面程序的功能是求圆的周长和面积.请改正程序中带*行中,2012年计算机等级考试二级C语言上机题(5)...
- 《代码大全》程序员们怎样花费自己的时间
- lLinux编程大全
- 两个字符串 char* a, char* b,输出b在a中的位置次序。
- php libev扩展使用
- Python的遗传算法GA优化深度置信网络DBN超参数回归预测
- 在制作Windows虚拟机模板时的常用技巧
- ps如何快速抠图色彩范围抠图#ps教程#ps学习#ps基础
- CV战神常用代码-----kj15
- 华为HCNA实验学习
- vitamio视频框架使用详解
- Linux中的rm指令
- 6、Flutter Widgets 之 InkWell 和 Ink
- excel表格分割线一分为二_Python与Excel交互——Xlwings
- 如何构建基于 Web Excel 组件的指标补录平台