+
95
-

回答

 <script type="text/javascript">
      function validateIdCard(idCard) {
  // 18位身份证号码正则表达式
  var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9X])$/;
  if (!reg.test(idCard)) {
    return false;
  }
  // 校验位校验
  var idCardArr = idCard.split("");
  var factorArr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  var parityBitArr = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];
  var sum = 0;
  for (var i = 0; i < factorArr.length; i++) {
    sum += factorArr[i] * idCardArr[i];
  }
  var parityBit = parityBitArr[sum % 11];
  if (idCardArr[17] == parityBit) {
    return true;
  } else {
    return false;
  }
}
if(validateIdCard("340923112232323")){
    alert("有效");
}else{
     alert("无效");
}

    </script>

网友回复

我知道答案,我要回答