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


