根据身份证号获取生日、性别、年龄信息

export function conversion(idCard, type) {

  if (type == 'age') {

    var age = 0,

      yearBirth,

      monthBirth,

      dayBirth;

    //获取用户身份证号码

    var userCard = idCard;

    //如果身份证号码为undefind则返回空

    if (!userCard) {

      return age;

    }

    var reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/; //验证身份证号码的正则

    if (reg.test(userCard)) {

      if (userCard.length == 15) {

        var org_birthday = userCard.substring(6, 12);

        //获取出生年月日

        yearBirth = "19" + org_birthday.substring(0, 2);

        monthBirth = org_birthday.substring(2, 4);

        dayBirth = org_birthday.substring(4, 6);

      } else if (userCard.length == 18) {

        //获取出生年月日

        yearBirth = userCard.substring(6, 10);

        monthBirth = userCard.substring(10, 12);

        dayBirth = userCard.substring(12, 14);

      }

      //获取当前年月日并计算年龄

      var myDate = new Date();

      var monthNow = myDate.getMonth() + 1;

      var dayNow = myDate.getDate();

      var age = myDate.getFullYear() - yearBirth;

      if (

        monthNow < monthBirth ||

        (monthNow == monthBirth && dayNow < dayBirth)

      ) {

        age--;

      }

      //返回年龄

      return age;

    } else {

      return "";

    }

  }else if(type=='sex'){

    if (idCard.length === 18) {

      if (idCard.charAt(16) >= "0" && idCard.charAt(16) <= "9") {

        if (parseInt(idCard.charAt(16)) % 2 === 0) {

          return "女";

        } else {

          return "男";

        }

      }

    }

    if (idCard.length === 15) {

      if (idCard.substr(14) >= "0" && idCard.substr(14) <= "9") {

        if (parseInt(idCard.charAt(14) % 2 === 0)) {

          return "女";

        } else {

          return "男";

        }

      }

    }

  }else if(type=='birthday'){

    var birthday = "";

    if (idCard != null && idCard != "") {

      if (idCard.length == 15) {

        birthday = "19" + idCard.substr(6, 6);

      } else if (idCard.length == 18) {

        birthday = idCard.substr(6, 8);

      }

      birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");

    }

    return birthday;

  }

}

猜你喜欢

转载自blog.csdn.net/weixin_51426266/article/details/125070674