/* 校验身份证号 */ function checkIdCard(id) { var flag = true; //转换大小写 id = id.toUpperCase(); var arrVerifyCode = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2]; var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; var Checker = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1]; if(id.length != 15 && id.length != 18) { layer.open({ title: ‘信息‘, content: ‘身份证号不符合规则‘ }); flag = false; } var Ai = id.length == 18 ? id.substring(0, 17) : id.slice(0, 6) + "19" + id.slice(6, 16); if(!/^\d+$/.test(Ai)) { layer.open({ title: ‘信息‘, content: ‘身份证号不符合规则‘ }); flag = false; } var yyyy = Ai.slice(6, 10), mm = Ai.slice(10, 12) - 1, dd = Ai.slice(12, 14); var d = new Date(yyyy, mm, dd), now = new Date(); var year = d.getFullYear(), mon = d.getMonth(), day = d.getDate(); if(year != yyyy || mon != mm || day != dd || d > now || year < 1800) { layer.open({ title: ‘信息‘, content: ‘身份证号不符合规则‘ }); flag = false; } for(var i = 0, ret = 0; i < 17; i++) { ret += Ai.charAt(i) * Wi[i] } Ai += arrVerifyCode[ret %= 11]; if(id.length == 18 && id != Ai) { layer.open({ title: ‘信息‘, content: ‘身份证号不符合规则‘ }); flag = false; } return flag; }
原文:https://www.cnblogs.com/XMBY/p/12660108.html