Nodejs - 通过身份证号验证年龄,出生日期和性别

{app.params.name}} {app.params.name}} {app.params.name}}

想要知道自己的年龄,出生日期和性别,或者是别人的,给我个身份证号,我就可以知道,看下面代码。

static validateIdNumberToAgeYear(str){
  let date = new Date();
  let currentYear = date.getFullYear();
  let currentMonth = date.getMonth() + 1;
  let currentDate = date.getDate();
  
  let idxSexStart = str.length == 18 ? 16 : 14;
  let birthYearSpan = str.length == 18 ? 4 : 2;

  let year;
  let month;
  let day;
  let sex;
  let birthday;
  let age;

  //性别
  let idxSex = 1 - str.substr(idxSexStart, 1) % 2;  
  sex = idxSex == '1' ? '女' : '男';  
  //生日
  year = (birthYearSpan == 2 ? '19' : '') + str.substr(6, birthYearSpan);  
  month = str.substr(6 + birthYearSpan, 2);  
  day = str.substr(8 + birthYearSpan, 2);  
  birthday = year + '-' + month + '-' + day;  
  //年龄
  let monthFloor = (currentMonth < parseInt(month,10) || (currentMonth == parseInt(month,10) && currentDate < parseInt(day,10))) ? 1 : 0;
  age = currentYear - parseInt(year,10) - monthFloor;  

  // console.log("我的出生日期是"+year+"年"+month+"月"+day+"日"+",今年"+age+"岁了"+",性别是"+sex);

  if(age >= 18){
    return true;  
  }
  
  return false;
}

我这里只是做了一个年龄的判断。


版权声明

durban 创作并维护的 Gowhich 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 Gowhich 博客( https://www.gowhich.com ),版权所有,侵权必究。

本文永久链接: https://www.gowhich.com/blog/764

comments powered by Disqus