根据身份证号码计算性别、生日、年龄

712 阅读1分钟
watch: {
    'form.idCard'(val, oldVal) {
      if (val !== oldVal && val.length >= 15) {
        // 性别
        if (parseInt(val.substr(16, 1)) % 2 === 1) { 
           this.form.gender = '男'
        } else {
           this.form.gender = '女'
        }

        // 出生日期
        if (val.length === 15) { 
         let birthday = "19" + val.substr(6, 2) + "-" + val.substr(10, 2) + "-" + val.substr(12, 2);
        } else if (val.length === 18) {
          let birthday = val.substr(6, 4) + "-" + val.substr(10, 2) + "-" + val.substr(12, 2);
        }

        // 年龄
        let myDate = new Date();
        let month = myDate.getMonth() + 1;
        let day = myDate.getDate(); 
        let age = myDate.getFullYear()-val.substring(6, 10) - 1;  
        if (val.substring(10,12)<month||val.substring(10,12)==month&&val.substring(12,14)<=day){ 
          age++;
         }
        this.form.age=age;
      }
    }