//18位身份证需要验证最后一位校验位 value = value.split(''); //∑(ai×Wi)(mod 11) //加权因子 var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; //校验位 var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]; var sum = 0; var ai = 0; var wi = 0; for (var i = 0; i < 17; i++) { ai = value[i]; wi = factor[i]; sum += ai * wi; } var last = parity[sum % 11]; if (parity[sum % 11] != value[17]) { this.showErrMsg(sender, "无效的身份证号,请重新输入!"); return false; }
转载于:https://www.cnblogs.com/xiaoQ0725/p/8875713.html