从盛大通行证上摘下来的身份证验证代码
<script language="javascript" type="text/javascript"> function CheckIdCardField(v_card) { var reg = /^\d{15}(\d{2}[0-9X])?$/i; if (!reg.test(v_card)) { return false; } if (v_card.length == 15) { var n = new Date(); var y = n.getFullYear(); if (parseInt("19" + v_card.substr(6, 2)) < 1900 || parseInt("19" + v_card.substr(6, 2)) > y) { return false; } var birth = "19" + v_card.substr(6, 2) + "-" + v_card.substr(8, 2) + "-" + v_card.substr(10, 2); if (!isDate(birth)) { return false; } } if (v_card.length == 18) { var n = new Date(); var y = n.getFullYear(); if (parseInt(v_card.substr(6, 4)) < 1900 || parseInt(v_card.substr(6, 4)) > y) { return false; } var birth = v_card.substr(6, 4) + "-" + v_card.substr(10, 2) + "-" + v_card.substr(12, 2); if (!isDate(birth)) { return false; } iW = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1); iSum = 0; for (i = 0; i < 17; i++) { iC = v_card.charAt(i); iVal = parseInt(iC); iSum += iVal * iW[i]; } iJYM = iSum % 11; if (iJYM == 0) sJYM = "1"; else if (iJYM == 1) sJYM = "0"; else if (iJYM == 2) sJYM = "x"; else if (iJYM == 3) sJYM = "9"; else if (iJYM == 4) sJYM = "8"; else if (iJYM == 5) sJYM = "7"; else if (iJYM == 6) sJYM = "6"; else if (iJYM == 7) sJYM = "5"; else if (iJYM == 8) sJYM = "4"; else if (iJYM == 9) sJYM = "3"; else if (iJYM == 10) sJYM = "2"; var cCheck = v_card.charAt(17).toLowerCase(); if (cCheck != sJYM) { return false; } } return true; } </script>
转载请遵循此协议:署名 - 非商业用途 - 保持一致
并保留此链接:http://fejerry.cnblogs.com/