关于javascript:JS根据身份证号获取日期性别年龄

6次阅读

共计 842 个字符,预计需要花费 3 分钟才能阅读完成。

简要记录一个集体优化后的工具函数,有须要的同学能够自行复制。

话不多说,上代码

/**
* @description 解析身份证信息
* @param {String} idCard - 身份证号
* @param {Number} analyseType - 解析类型(birthDate- 出生日期 sex- 性别 age- 年龄)* @return {String}
*/
function getAnalysisIdCard(idCard = '', analyseType) {
    const analyseObj = {"birthDate": (idCard) => {
            // 获取出生日期
            const birth = `${idCard.substring(6, 10)}-${idCard.substring(10, 12)}-${idCard.substring(12, 14)}`
            return birth;
        },
        "sex": (idCard) => {
            // 获取性别
            const sex = parseInt(idCard.substr(16, 1)) % 2 === 1 ? "男" : "女" ;
            return sex;
        },
        "age": (idCard) => {// 获取年龄 ( 计算周岁,未过往年的生日则不加上一岁)
            const myDate = new Date(), 
            month = myDate.getMonth() + 1, 
            day = myDate.getDate();
            let age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
            if (idCard.substring(10, 12) < month || idCard.substring(10, 12) == month && idCard.substring(12, 14) <= day) {age++;}
            return age;
        },
    }
    if (!analyseObj[analyseType]) {throw new Error('请传入正确的解析类型!')
    }
    return analyseObj[analyseType](idCard)
  } 

谢谢查阅。zzZZ.

正文完
 0