编辑代码

  function testIdCard (id){
      var reg = /^[1-6][0-7][\d]{4}((19[\d]{2})|(20[0-1][\d]))((0[1-9])|(1[0-2]))((0[1-9])|([1-2]\d)|(3[0-1]))[\d]{3}[\dx]$/;
      var isFormatMatch = reg.test(id);
      if (!isFormatMatch) {
          console.log("base format does not match ID Card");
          return false;
      };
      var ids = id.split("");
      var modulus = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
      var matchLast = [1,0,"X",9,8,7,6,5,4,3,2]
      var sum = 0;
      for (var i = 0; i < modulus.length; i++) {
          sum += (modulus[i] * ids[i]);
      };

      var checksum = matchLast[sum % 11];
      if (checksum != ids[ids.length-1].toUpperCase()) {
          console.log("error: checknum does not match",checksum);
          return false;
      }
      return true;
  }

  var MATCH = testIdCard('120106199402024518');
  
  console.log(MATCH ? "MATCH" : "DOES NOT MATCH");