function checkID(id) {
var reg = /^[1-9][0-9]{5}(19|20)[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])[0-9]{3}[0-9X]$/;
if (reg.test(id)) {
var idArr = id.split("");
// 加权因子
var coefficientArr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
// 校验码映射表
var codeArr = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
var sum = 0;
for (var i = 0; i < idArr.length - 1; i++) {
sum += idArr[i] * coefficientArr[i];
}
var code = codeArr[sum % 11];
if (code === idArr[17]) {
return true; // 验证通过
}
}
return false; // 验证未通过
}
The usage is as follows:
var id = "11010519491231002X"; // ID number
var result = checkID(id); // return true or false