|
- // 二代身份证号码为 18 位,其最后一位(第 18 位)的计算方法为:
- // 1、 将前面的身份证号码 17 位数分别乘以不同的系数。从第一位到第十七位的系数分别 为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
- // 2、 将这 17 位数字和系数相乘的结果相加
- // 3、 用加出来和除以 11,看余数是多少?
- // 4、 余数只可能有 0-1-2-3-4-5-6-7-8-9-10 这 11 个数字。
- // 每个数字所对应的 最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2
- // 即,如果余数是是 2,就会在身份证的第 18 位数字上出现罗马数字的X。如果余数是 10,身份证的最后一位号码就 是 2
- // 身份验证函数
- function Authentication() {
- const arrXishu = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; //声明系数数组
- var arrch = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; //声明最后一位身份证号码的数组
- var idcard = document.getElementById("IdCard").value;
- var arrIdcard = idcard.split(""); //字符串转化为数组
- var sum = 0;
- if (arrIdcard.length != 18) {
- return alert("输入的号码有误");
- } else {
- for (var index = 0; index < arrXishu.length; index++) {
- sum += parseInt(arrXishu[index]) * arrXishu[index];
- }
- let c = sum % 11;
- let code = arrch(c);
- if (code == arrIdcard.charAt(17)) {
- alert("身份证号码正确");
- } else {
- alert("身份证号码错误");
- }
- }
- }
复制代码
|
|