我国大陆居民身份证Java验证
關于身份證驗證這一點做到身份證的編碼有效性,只有是否真實存在,就算有國家居民身份證數據庫也不見的真的符合事實,畢竟一人多證,或者有人無證的基本現象是存在的。
做項目中有用到用戶身份證驗證,那么盡最大努力使用戶輸入的身份證接近事實,當然只是接近。如果要真極度達到身份證確實真是有效,使用國家居民身份證數據庫或者銀行卡辦卡身份證證件等。
接下來用一段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验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用@functools.wraps的理
- 下一篇: Android 中文 API (27)