<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>
网友回复