简要记录一个集体优化后的工具函数,有须要的同学能够自行复制。
话不多说,上代码
/*** @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.