JavaScript验证香港身份证校验码
/**
* 检验香港身份证是否有效
* @param {Object} id 身份证前面部分
* @param {Object} num 身份证最后一位检验码
*/
checkHKid(id,num){
let a_z = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let allNum = 0;
var isletter1 = /^[A-Z]+$/.test(id[0]);
var isletter2 = /^[A-Z]+$/.test(id[1]);
for(let key in id){
let hao = id[key];
let bizhong = 0;
if(isletter1&&isletter2){
if(key==0||key==1){
hao = this.yushu(a_z.indexOf(hao)+10);
}
bizhong = 9-key;
}else{
bizhong = 8-key;
if(key==0){
allNum+=5;//前面补位;
hao = this.yushu(a_z.indexOf(hao)+10);
}
}
let jiyu = this.yushu(Number(hao)*bizhong);
allNum+=jiyu;
}
let lastyu = this.yushu(allNum);
let jiaoyan;
lastyu==0?jiaoyan=0:jiaoyan=11-lastyu;
if(jiaoyan==10)jiaoyan="A";
return jiaoyan==num
},