1、根据身份证号获取年龄
export function analyzeIDCard(IDCard){
let age = 0,yearBirth,monthBirth,dayBirth;
//获取用户身份证号码
let userCard = IDCard;
//如果身份证号码为undefind则返回空
if(!userCard){
return age;
}
let reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/; //验证身份证号码的正则
if (reg.test(userCard)) {
if (userCard.length == 15) {
let org_birthday = userCard.substring(6, 12);
//获取出生年月日
yearBirth = "19" + org_birthday.substring(0, 2);
monthBirth = org_birthday.substring(2, 4);
dayBirth = org_birthday.substring(4, 6);
} else if (userCard.length == 18) {
//获取出生年月日
yearBirth = userCard.substring(6,10);
monthBirth = userCard.substring(10,12);
dayBirth = userCard.substring(12,14);
}
//获取当前年月日并计算年龄
let myDate = new Date();
let monthNow = myDate.getMonth() + 1;
let dayNow = myDate.getDate();
let age = myDate.getFullYear() - yearBirth;
if(monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)){
age--;
}
//返回年龄
return age;
} else {
return ''
}
}
2、根据身份证号获取出生日期和性别
export function getIdInfo(cardNo) {
let reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/; //验证身份证号码的正则
if(reg.test(cardNo)){ // 身份证号码是否合法
let birthday = "";
let gender = "";
if (cardNo.length == 15) {
let org_birthday = cardNo.substring(6, 12);
let org_gender = cardNo.substring(14, 15);
birthday = "19" + org_birthday.substring(0, 2) + "-"
+ org_birthday.substring(2, 4) + "-"
+ org_birthday.substring(4, 6);
gender = org_gender % 2 == 1 ? "male" : "female";
} else if (cardNo.length == 18) {
let org_birthday = cardNo.substring(6, 14);
let org_gender = cardNo.substring(16, 17);
birthday = org_birthday.substring(0, 4) + "-"
+ org_birthday.substring(4, 6) + "-"
+ org_birthday.substring(6, 8);
gender = org_gender % 2 == 1 ? "male" : "female";
}
return birthday
}else{
return false;
}
}