var Check = { // 身份证号校验 // 如果正确返回 true,如果错误,返回正确的身份证号 idCard : function(str){ var vaildCode = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; var vaildCode2 = { 0 : '1', 1 : '0', 2 : 'x', 3 : '9', 4 : '8', 5 : '7', 6 : '6', 7 : '5', 8 : '4', 9 : '3', 10 : '2' }; var ids = str.split(''); var idLastNum = ids[ids.length - 1]; var pre17 = str.substr(0, 17); var sum = 0; // 1、相乘 求和 for (var i = 0; i < ids.length - 1; i++) { sum += Number(ids[i]) * Number(vaildCode[i]); }; //2、除以 11 取余 var ba = sum % 11; //3、最后一位校验码 var getLastNum = vaildCode2[ba]; if(getLastNum != idLastNum){ // return false; return pre17 + getLastNum; } return true; } }