jquery 校驗 身份證號碼
大陸18位身份證(第二代身份證)
身份號碼是一組具有特征組合碼,由十七位數字本體碼和一位校驗碼組成。
排列順序從左至右依次為:六位數字地區碼,八位數字生日碼,三位數字順序碼和一位數字校驗碼。
校驗方法:
(1)先對前17位數字的權求和
S = Sum(Ci * Vi), i = 0, ... , 16
Ci:表示身份證號碼上第i位置的數字值
Vi:表示第i位置上的“加權因子”
加權因子Vi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)計算模(固定算法)
Y = mod(S, 11)
(3)將計算模Y與對應的校驗碼校驗
Y: 0 1 2 3 4 5 6 7 8 9 10 (通過Y取得對應校驗碼與身份證的第18位校驗)
校驗碼: 1 0 X 9 8 7 6 5 4 3 2
function (value){ var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加權因子 var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校驗碼 if(/^\d{17}\d|x$/i.test(value)){ var sum = 0, idx; for(var i = 0; i < value.length - 1; i++){ // 對前17位數字與權值乘積求和 sum += parseInt(value.substr(i, 1), 10) * arrExp[i]; } // 計算模(固定算法) idx = sum % 11; // 檢驗第18為是否與校驗碼相等 return arrValid[idx] == value.substr(17, 1).toUpperCase(); }else{ return false; } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!