节点/小火箭/美区ID/国外苹果ID/美区小火箭购买/美区小火箭兑换码/shadowrocket兑换码/苹果商店下载shadowrocket网址
日前,项目中有一个输入框要求用户输入香港身份证号码,其中涉及验证输入的身份证号码。由于香港身份证号码的特殊性,我们也可以直接判断。效力。
废话不多说,直接上代码:
IsHKID(value) {
let pattern = new RegExp("^[a-zA-Z0-9-s()]+$");
if(""==value){
this.$scope.Rex = false;
this.$scope.IsHKID = false;
return;
}
if(!pattern.test(value)){
this.$scope.Required = false;
this.$scope.Rex= true;
return;
}else{
this.Rex = false;
let strValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (value.length
if (matchArray == null){
this.$scope.IsHKID = true;
return;
}
let charPart = matchArray[1];
let numPart = matchArray[2];
let checkDigit = matchArray[3];
let checkSum = 0;
if (charPart.length == 2) {
checkSum += 9 * (1 + strValidChars.indexOf(charPart.charAt(0)));
checkSum += 8 * (1 + strValidChars.indexOf(charPart.charAt(1)));
} else {
checkSum += 8 * (1 + strValidChars.indexOf(charPart));
}
for (let i = 0, j = 7; i < numPart.length; i++ , j--)
checkSum += j * numPart.charAt(i);
let remaining = checkSum % 11;
let verify = '';
if(remaining==0){
verify = 0;
}else{
verify = 11 - remaining == 10 ? 'A' : 11 - remaining;
}
if (verify == checkDigit) {
this.$scope.IsHKID = false;
this.$scope.Required = false;
} else {
this.$scope.IsHKID = true;
}
}
}
有些人看到可能会一头雾水,举个栗子:
香港身份证号码如下所示:(4)
香港身份证号码的组成如下:第一个字母为一个字母或两个字母+六个阿拉伯数字+(字母为A或0-9的阿拉伯数字之一);
其实上面的代码不用看那么久香港手机号格式,但是逻辑很简单:
香港身份证号码的第一个字母是一个字母,那么它的长度是8位;两个字母,长度为9位
将第一个字母转换为 A 到 Z、A 到 1、B 到 2 中的字母顺序,依此类推。如果括号中有 A,则转换为 10。接下来香港手机号格式,对所有数字应用权重,权重为:
4. 将数字与权重相加得到一个和
5. 取上面得到的和➗11得到余数
6. 从余数判断ID号是否有效
另一个栗子:
比如身份证号为 C123456(9),字母C在字母表的次序为3
计算如下:3*8+1*7+2*6+3*5+4*4+5*3+6*2+9*1=110
110 = 0
故括弧内的数字应该为0,所以这个身份证号时无效的
总结完毕!
越努力,越幸运!
节点/小火箭/美区ID/国外苹果ID/美区小火箭购买/美区小火箭兑换码/shadowrocket兑换码/苹果商店下载shadowrocket网址
原文链接:香港身份证号首位为一个字母,长度就是8位字母,转载请注明来源!