/**
* 验证身份证
*/
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;
}