身份证第18位校验码计算规则:

身份证第18位校验码如何计算_js

下面代码是javascript的实现;

校验为真返回true;否则返回false

function check(id){
var vid = id+'';
var flag = false;
console.log(id)
if(vid.length != 18){
return flag;
};
var rule = '10X98765432';
var lastStr = vid.slice(17);
var str = id.slice(0, 17);
var arr = str.split('').reverse();
var s = 0;
arr.forEach(function(val, i) {
s+=Math.pow(2, ++i)%11*val;
}, this);
flag = rule[s%11] == lastStr.toUpperCase();
return flag;
}