jquery 校驗 身份證號碼

jopen 8年前發布 | 9K 次閱讀 jQuery Ajax框架

大陸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;  
    }  
}



來自: http://blog.csdn.net/wolfcyl/article/details/6435756

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!