关于身份证验证这一点做到身份证的编码有效性,只有是否真实存在,就算有国家居民身份证数据库也不见的真的符合事实,毕竟一人多证,或者有人无证的基本现象是存在的。

做项目中有用到用户身份证验证,那么尽最大努力使用户输入的身份证接近事实,当然只是接近。如果要真极度达到身份证确实真是有效,使用国家居民身份证数据库或者银行卡办卡身份证证件等。

接下来用一段Java代码来实现没有数据库服务提供的时候做身份证验证的示例。

关于我国(中国)大陆居民身份证编码格式和意义参见百度百科(身份证):

http://baike.baidu.com/link?url=tu-0tuMiWOmakcmpFIDHezquZrfc75oPBKS_8g7hD7wiKYfVaV-yxow93fwbiqyE

验证身份证我们要验证那些内容呢?

以1999年7月1日生效的GB11643-1999《公民身份号码》规范为例,18为居民身份证号码。

1.验证身份证号码前6为,省市区县编码

2.验证身份证号码第7-14位,出生年月日,格式yyyyMMdd,注意(以当日为日期截至线,一个身份证的生日还没到,肯定是不中的喽)

3.验证身份证号码第15-17位,出生序列号(补充一点点,就是同一地区同天出生的孩子的编号,男孩的奇数,女孩偶数,号码从小到大排序,老年人预留号码从999往下递减)

4.验证身份证号码第18位,即校验位,1-17位通过一定的算法计算而来值对象的检验位值

验证并不复杂就是考虑周全就行了,下面是Java实现的代码,如果使用JavaScript做前端验证,可以按Java实现的方式很容易的DIY一份JavaScript的实现.

身份证验证类:

下面是省市县区编码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

我国大陆居民身份证Java验证相关推荐

  1. 我国大陆居民×××Java验证

    关于×××验证这一点做到×××的编码有效性,只有是否真实存在,就算有国家居民×××数据库也不见的真的符合事实,毕竟一人多证,或者有人无证的基本现象是存在的. 做项目中有用到用户×××验证,那么尽最大努 ...

  2. 大陆居民身份证验证方法(java)

    1.设置接口 @Constraint(validatedBy = ChineseIdNumberValidator.class) @Target({ElementType.METHOD,Element ...

  3. java验证身份证号码是否有效源代码

    转载自   java验证身份证号码是否有效源代码 1.描述 用java语言判断身份证号码是否有效,地区码.出身年月.校验码等验证算法 2.源代码 package test; import java.t ...

  4. 【Java】身份证的验证

    题目要求:输入18位的身份证号码,要求首先验证身份证号码合法性(仅利用校验位验证),如果合法则输出性别和出生日期. 说明: (1)身份证号码的7~12位表示出生年月:第17位表示性别,奇数为男,偶数为 ...

  5. Java 身份证号验证

    二代身份证号码验证 扯淡区: 本博客主要内容是利用Java语言来验证身份证号码是否符合18位的二代身份证号规范. 公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次 ...

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

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

  7. 新旧身份证合法性验证及相互转换算法(三):Java身份证号码验证及将15位转换18位

    package test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 身份证号码验证 * */ pub ...

  8. 18位身份证验证(Java)加入身份证输入验证是否满足18位代码(修订稿)

    package day20181016; /** * 身份证的验证 34052419800101001X * */ import java.util.Scanner; public class Zuo ...

  9. java验证公民身份证真实性

    通过一定的算法规则校验身份证的真实性,不多说,上代码: package examples.cardId; import java.util.Scanner; /**  * 公民身份号码是特征组合码,由 ...

最新文章

  1. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)
  2. ios 旋转加载gif_加载GIF动画方法 iOS
  3. Android 性能优化 之谈谈Java内存区域
  4. Spring Boot 使用Redis
  5. dexpler的使用方法
  6. java输入输出高速
  7. 【递归】n个数的全排列
  8. 现在好多打工的都说月薪有八九千甚至过万,真有那么高工资吗?
  9. .net core webapi 导出excel(两种方式EPPLUS、NPOI),返回下载地址或文件流
  10. CarMaker快速入门
  11. 软考之项目网络图(活动图)
  12. [Linux]正则表达式和grep使用
  13. 什么是BSIC及其在GSM系统中的应用
  14. java 输出空心正方形_怎么用java数组打印一个正方形中间空着的
  15. 【 Ubuntu 】clang 编译器
  16. cacai安装与配置
  17. Appinum:在使用安卓模拟器定位页面元素时启动uiautomatorviewer.bat ,但是报错: Error while obtaining UI hierarchy XML file: c
  18. 微博URL短地址lua生成算法
  19. unittest自动化测试-requests库实现http请求与requests库离线安装
  20. 一体化Mbus物联网主机上线问题总结

热门文章

  1. 深度学习(八)RBM受限波尔兹曼机学习-未完待续
  2. 局部特征(6)——局部特征描述汇总
  3. 鸟哥的Linux私房菜(基础篇)- 第二十章、启动流程、模块管理与 Loader
  4. 【Machine Learning】OpenCV中的K-means聚类
  5. 在react-router中进行代码拆分
  6. Linux 编程--三种常用的定时器
  7. 解压缩文件命令linux
  8. [转]C++结构体|类 内存对齐详解
  9. hdu4266(三维凸包模板题)
  10. smark和openfire即时通信代码