驗證身份證號碼是否為正確值

2021-08-18 11:29:27 字數 579 閱讀 8846

今天(2018-04-09)在整理正則表達時,有乙個關於身份證號碼的正則匹配。最簡單的不動腦子的匹配方式為:^[1-9]\d[\d|x]$,但是這樣很容易偽造乙個身份證號來騙過電腦,於是加強版的正則匹配為:

^[1-9]\d(18|19|20)\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$

雖然加強版的正則匹配能過濾掉大部分不靠譜的身份證號碼,但仍存在漏網之魚,比如我創造了乙個符合它正則規則的號碼:123456180011116578(純屬構造)

從上圖我們看到,這個構造的身份證號碼驗證通過了。所以光用正則匹配不能完全判斷輸入的身份證號是否為正確的值。

於是開始動手寫了驗證的js**:

輸入身份證號碼:提交	

身份證號碼驗證

說明 驗證身份證的有效性 引數 cid 身份證號碼 返回 地方 出生時間 性別 private string checkcidinfo string cid if cid.length 18 char c cid cid.length 1 bool last false if c 0 c 9 c a...

驗證身份證號碼

好久沒更新了,今天簽到啦。感覺這個驗證挺重要的,也挺常用的,所以分享給需要的朋友。驗證身份證號碼,在網上找到的好東東 function checkidcard idcard var idcard,y,jym var s,m var idcard array new array idcard arra...

驗證身份證號碼

var idcardnoutil powers 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 paritybit 1 0 x 9 8 7 6 5 4 3 2 genders checkaddresscode function addresscode test address...