JS验证身份证是否有效

mac2025-10-25  4

/** * 验证身份证 */ function check_id_card(value){ let arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子 let arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码 if(/^\d{17}\d|x$/i.test(value)){ let sum = 0, idx; for(let i = 0; i < value.length - 1; i++){ // 对前17位数字与权值乘积求和 sum += parseInt(value.substr(i, 1), 10) * arrExp[i]; } // 计算模(固定算法) idx = sum % 11; // 检验第18为是否与校验码相等 return arrValid[idx] == value.substr(17, 1).toUpperCase(); }else{ return false; } } /** * 获取身份证信息 */ function get_id_card(id_card){ var query = new Object(); query.sex = parseInt(id_card.substr(16, 1)) % 2; query.birth = id_card.substring(6, 10) + "-" + id_card.substring(10, 12) + "-" + id_card.substring(12, 14); //获取年龄 var myDate = new Date(); var month = myDate.getMonth() + 1; var day = myDate.getDate(); var age = myDate.getFullYear() - id_card.substring(6, 10) - 1; if (id_card.substring(10, 12) < month || id_card.substring(10, 12) == month && id_card.substring(12, 14) <= day){ age++; } query.age = age; return query; }

 

最新回复(0)