身份證校驗規則及js

2021-08-17 10:29:38 字數 2162 閱讀 7916

18位身份證號碼比15位身份證號碼多出的3位中的兩位用來補充2位的年份為4位,另外1位作為校驗碼存在。一項由國家質量技術監督局發布的標準對身份證號碼的編碼規則做了具體的規定。該標準為名《公民身份號碼》,編號gb11643-1999,為國家強制標準。它代替了2023年公布的名為《社會保障號碼》gb11643-1989國家強制標準,從2023年7月1日開始強制實施。該標準的內容介紹如下。

1.標準適用範圍:規定了公民身份號碼的編碼物件、號碼的具體結構組成和表現形式,並規定每個編碼物件將獲得乙個唯一的、終身不變的號碼。

2.編碼物件:具有中國人民共和國國籍的公民。

3.號碼的結構組成和表現形式。

該標準中對號碼的構造組成和表現形式進行了如下的闡述:

號碼由17位本體碼和1位校驗碼組成,這18位號碼從左到右依次為:

1     2     3     4     5     6     7     8     9     10   11   12   13   14   15   16   17   18

a     a     a     a     a     a     y     y     y     y     m    m    d     d     n    n    s     c

前六位aaaaaa同樣是地區編碼,按照國家推薦標準gb/t2260的規定進行編碼。yyyy是擴充後的四位出生年碼,mm和dd為出生月和日碼,不足兩位的仍然在高位補0。nns為無法確定的順序碼,其中s為性別識別碼,同樣將奇數分配給男性,偶數分配給女性。第18位校驗位是對前17位進行如下的計算得到的。

使用陣列b[i]表示從左到右第i個數字,w[i]表示第i位上的加權因子,需要注意的是,為了方便講述,這裡的陣列第乙個是b[1]而不是計算機中的b[0],w[i]也是同樣。加權因子依次為:

1     2     3     4     5     6     7     8     9     10   11   12   13   14   15   16   17

7     9     10   5     8     4     2     1     6     3     7     9     10   5     8     4     2

得到第18位的值c首先要利用這個加權因子計算出 的值, 的計算公式為:

即,將前17位的數字與其對應的加權因子相乘,再將積相加,最後的和再除以11,取其餘。除以11最後的餘有11種可能,從0到10。通過餘再做乙個轉換,即可得到相應的第18位上的校驗碼,餘數和校驗碼的轉換如下:

餘數                     0     1     2     3     4     5     6     7     8     9     10

對應的校驗碼       1     0     x     9     8     7     6     5     4     3     2

/**  

* 判斷身份證號碼為18位時最後的驗證位是否正確

* @param a_idcard 身份證號碼陣列

* @return

*/

function istruevalidatecodeby18idcard(a_idcard)

var valcodeposition = parseint(sum) % 11; // 得到驗證碼所位置

if (parseint(valchar) == parseint(validecode[valcodeposition])) else

}

/**  

* 驗證18位數身份證號碼中的生日是否是有效生日

* @param idcard 18位書身份證字串

* @return

*/

function isvaliditybrithby18idcard(idcard18)else

}

/**  

* 驗證15位數身份證號碼中的生日是否是有效生日

* @param idcard15 15位書身份證字串

* @return

*/

function isvaliditybrithby15idcard(idcard15)else

}

js校驗身份證

begin 校驗身份證 function checkidcard formname,inputname,itemname var area alert area parseint idcard.substr 0,2 var y,jym var s,m var idcard array new arr...

JS 身份證校驗函式

function checkid iccid id iccid var id iccid,y,jym var s,m var id iccid array new array id iccid array id iccid.split 地區檢驗 if area parseint id iccid.s...

JS身份證的校驗

function iscardno idcard 0 d 1 0 2 0 1 2 d 3 0 1 d 1 9 d 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d d xx 如果通過該驗證,說明身份證格式正確,但準確性還需計算 if regidcard.test idcard var ...