jquery 校驗(yàn)中國(guó)身份證號(hào)碼實(shí)例詳解
大陸18位身份證(第二代身份證)
身份號(hào)碼是一組具有特征組合碼,由十七位數(shù)字本體碼和一位校驗(yàn)碼組成。
排列順序從左至右依次為:六位數(shù)字地區(qū)碼,八位數(shù)字生日碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。
校驗(yàn)方法:
(1)先對(duì)前17位數(shù)字的權(quán)求和
S = Sum(Ci * Vi), i = 0, ... , 16
Ci:表示身份證號(hào)碼上第i位置的數(shù)字值
Vi:表示第i位置上的“加權(quán)因子”
加權(quán)因子Vi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)計(jì)算模(固定算法)
Y = mod(S, 11)
(3)將計(jì)算模Y與對(duì)應(yīng)的校驗(yàn)碼校驗(yàn)
Y: 0 1 2 3 4 5 6 7 8 9 10 (通過(guò)Y取得對(duì)應(yīng)校驗(yàn)碼與身份證的第18位校驗(yàn))
校驗(yàn)碼: 1 0 X 9 8 7 6 5 4 3 2
實(shí)例代碼:
function check_id(value){ var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加權(quán)因子 var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校驗(yàn)碼 if(/^/d{17}/d|x$/i.test(value)){ var sum = 0, idx; for(var i = 0; i < value.length - 1; i++){ // 對(duì)前17位數(shù)字與權(quán)值乘積求和 sum += parseInt(value.substr(i, 1), 10) * arrExp[i]; } // 計(jì)算模(固定算法) idx = sum % 11; // 檢驗(yàn)第18為是否與校驗(yàn)碼相等 return arrValid[idx] == value.substr(17, 1).toUpperCase(); }else{ return false; } }感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注