
第二代号为18位数字. 如何编写验证号最后一位数字的功能?今天js判断号码,小恶魔通过代码与大家分享了实现方法
第二代号码为18位,最后一位(第18位)的计算方法为:

1. 将前一个ID号的17位数字乘以不同的系数. 从第一名到第十七名的系数为:
7-9-10-5-8-4-2-1-6-3-7-9-9-10-5-8-4-2
2. 将这17位数字和系数相乘的结果相加
3. 加11除以除法余数?
4. 其余部分只能包含11位0-1-2-3-4-5-6-6-7-8-9-10. 每个号码对应的最后一个ID卡的号码是: 1-0-X-9-9-8-7-6-6-5-4-2-3. 也就是说,如果余数为2,则罗马数字X将出现在ID的第18位. 如果余数为10js判断号码,则的最后一个数字为2.
例如: 一个男人的ID号是34052419800101001X. 验证最后一位数字正确时,首先需要确定前17位数字的乘积总和为189,然后将189除以11得到17 + 2/11,这意味着剩余数字为2. ,通过相应的规则,您可以知道与余数2对应的数字是x. 因此,可以确定此ID号的最后一位是合格的.
验证方法如下:
//验证方法
function verifyCode(id){
if(id.length !=18 )
return false;
/*1、从第一位到第十七位的系数分别为:
7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2
将这17位数字和系数相乘的结果相加。 */
var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
var sum = 0;
for(var i=0; i<arr.length; i++){
sum += parseInt(id.charAt(i)) * arr[i];
}
//2、用加出来和除以11,看余数,
var c = sum%11;
//3、分别对应的最后一位的号码为:1-0-X-9-8-7-6-5-4-3-2
var ch = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
var code = ch[c];
var last = id.charAt(17);
last = last=='x' ? 'X': last;
return last == code;
}
测试方法:
var id = "34052419800101001X";
console.log(verifyCode(id));
原始地址:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-191986-1.html
哈哈
外面的墙上都有