JS-身分証番号によって日付性別年齢を取得します.

1366 ワード

個人最適化後のツール関数を簡単に記録します.必要な学生は自分でコピーできます.
話を多くしないで、コードをつけます.
/**
* @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.