身份证校验且提取年月日(判断日期是否正确)JS

提取出生年月日

示例方法

 /**
     * 识别是否是身份证,且校验出生年月日是否正确
     * @param idCard
     * @returns {string|null}
     */
    getBirthday(idCard) {
      //身份证号码正则表达式
      var idCardReg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;

      //如果不是有效的身份证号码则返回null
      if (!idCardReg.test(idCard)) {
        return null;
      }

      //获取出生年月日
      var birthday = '';
      // eslint-disable-next-line eqeqeq
      if (idCard.length == 15) {
        birthday = '19' + idCard.slice(6, 12);
      } else {
        birthday = idCard.slice(6, 14);
      }

      //将年月日分别提取出来
      var year = birthday.slice(0, 4);
      var month = birthday.slice(4, 6);
      var day = birthday.slice(6, 8);

      //判断年月日是否正确
      var date = new Date(year, parseInt(month) - 1, day);
      // eslint-disable-next-line eqeqeq
      if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day) {
        return null;
      }

      //返回出生年月日
      return year + '-' + month + '-' + day;
    },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值