一、代码注释详解
参数解析
cardID参数为身份证号,字符串类型,数字类型传入之前必须转换字符串,否则会出现精度问题,合法参数:18位标准身份证号
flag控制是年龄或性别,字符类类型,默认age,合法参数:age sex
代码注释
function leGetAge(cardID, flag = 'age') {
let currentYear = new Date().getFullYear();
let currentMonth = new Date().getMonth() + 1;
let currentDay = new Date().getDate() + '';
let currentMonthDay = `${ currentMonth }${ currentDay.length < 2 ? '0' + currentDay : currentDay }`;
let year = cardID.slice(6, 10);
let monthDay = cardID.slice(10, 14);
let birthdayCount = currentYear - year;
if(flag === 'age') {
return Number(monthDay) < Number(currentMonthDay) ? birthdayCount : birthdayCount - 1;
}
else {
return cardID[16] % 2 === 0 ? '女' : '男';
}
}
console.log(leGetAge('110101199810185215', 'age'));
console.log(leGetAge('110101199810185215', 'sex'));