我国大陆居民身份证Java验证
關(guān)于身份證驗(yàn)證這一點(diǎn)做到身份證的編碼有效性,只有是否真實(shí)存在,就算有國家居民身份證數(shù)據(jù)庫也不見的真的符合事實(shí),畢竟一人多證,或者有人無證的基本現(xiàn)象是存在的。
做項(xiàng)目中有用到用戶身份證驗(yàn)證,那么盡最大努力使用戶輸入的身份證接近事實(shí),當(dāng)然只是接近。如果要真極度達(dá)到身份證確實(shí)真是有效,使用國家居民身份證數(shù)據(jù)庫或者銀行卡辦卡身份證證件等。
接下來用一段Java代碼來實(shí)現(xiàn)沒有數(shù)據(jù)庫服務(wù)提供的時候做身份證驗(yàn)證的示例。
關(guān)于我國(中國)大陸居民身份證編碼格式和意義參見百度百科(身份證):
http://baike.baidu.com/link?url=tu-0tuMiWOmakcmpFIDHezquZrfc75oPBKS_8g7hD7wiKYfVaV-yxow93fwbiqyE
驗(yàn)證身份證我們要驗(yàn)證那些內(nèi)容呢?
以1999年7月1日生效的GB11643-1999《公民身份號碼》規(guī)范為例,18為居民身份證號碼。
1.驗(yàn)證身份證號碼前6為,省市區(qū)縣編碼
2.驗(yàn)證身份證號碼第7-14位,出生年月日,格式y(tǒng)yyyMMdd,注意(以當(dāng)日為日期截至線,一個身份證的生日還沒到,肯定是不中的嘍)
3.驗(yàn)證身份證號碼第15-17位,出生序列號(補(bǔ)充一點(diǎn)點(diǎn),就是同一地區(qū)同天出生的孩子的編號,男孩的奇數(shù),女孩偶數(shù),號碼從小到大排序,老年人預(yù)留號碼從999往下遞減)
4.驗(yàn)證身份證號碼第18位,即校驗(yàn)位,1-17位通過一定的算法計算而來值對象的檢驗(yàn)位值
驗(yàn)證并不復(fù)雜就是考慮周全就行了,下面是Java實(shí)現(xiàn)的代碼,如果使用JavaScript做前端驗(yàn)證,可以按Java實(shí)現(xiàn)的方式很容易的DIY一份JavaScript的實(shí)現(xiàn).
身份證驗(yàn)證類:
下面是省市縣區(qū)編碼:
| 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 |
總結(jié)
以上是生活随笔為你收集整理的我国大陆居民身份证Java验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用@functools.wraps的理
- 下一篇: Android 中文 API (27)