ID card verification js code

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

Guess you like

Origin blog.csdn.net/m0_59910554/article/details/130572944