黃聰: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 check_id(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;  
    }  
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM