js输入身份证获取生日年龄性别

简介: js输入身份证获取生日年龄性别
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
  </head>
  <body>
    身份证号:<input type="text" name="tidentity_border" id="tidentity_border" onChange="GetBir_and_Sex(this.id,'born_border','age_boorder','gender_border')" /><br>
    性别:<select name="gender_border" id="gender_border">
      <option value="">=选择性别=</option>
      <option value="男">男</option>
      <option value="女">女</option>
    </select><br>
    出生年月<input type="text" name="born_border" id="born_border" /><br>
    年龄:<input type="text" name="age_boorder" id="age_boorder" />
    <script>
      // 根据身份证号获取 生日、 年龄、 性别
      //生日
      function GetBir_and_Sex(IDNu, born_border, ages, sex) {
        var IDNu = document.getElementById(IDNu);
        var re =
          /^\d{6}(((19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}([0-9]|x|X))|(\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}))$/;
        if (!re.test(IDNu.value)) {
          alert("身份证号码有误,请重新填写!");
          IDNu.focus();
          //location.replace("");
          return false;
        }
        var str = IDNu.value;
        var born_border = document.getElementById(born_border);
        try {
          if (typeof(eval(born_border)) == "undefined") {
            //alert('参数born_border为空');
          } else {
            born_border.value = str.substring(6, 10) + "-" + str.substring(10, 12) + "-" + str.substring(12, 14);
          }
        } catch (e) {
          //alert('参数born_border错误');
        }
        //年龄 
        var ages = document.getElementById(ages);
        var myDate = new Date();
        var month = myDate.getMonth() + 1;
        var day = myDate.getDate();
        var age = myDate.getFullYear() - str.substring(6, 10) - 1;
        try {
          if (typeof(eval(ages)) == "undefined") {
            //alert('参数born_border为空');
          } else {
            if (str.substring(10, 12) < month || str.substring(10, 12) == month && str.substring(12, 14) <= day) {
              age++;
            }
            ages.value = age;
          }
        } catch (e) {
          //alert('参数born_border错误');
        }
        //性别 
        var sec = str.substring(16, 17);
        var sex = document.getElementById(sex);
        if (sec % 2 == 0) {
          var sew = "女";
        } else {
          var sew = "男";
        }
        sex.value = sew;
        for (i = 0; i < sex.options.length; i++)
          if (sex.options[i].value == sew) {
            sex.options[i].selected = true;
          }
      }
    </script>
  </body>
</html>

当我们输入身份证号时,可以通过身份证号的前6位数字来获取到出生年月信息,通过身份证号的第15位数字来获取性别信息。年龄可以通过当前时间减去出生年月来计算得出。具体实现过程可以通过解析身份证号来实现,比如使用正则表达式来获取身份证号的各个部分信息。

相关文章
|
2月前
|
存储 JavaScript 前端开发
用 HTML + JavaScript DIY 渐进式延迟法定退休年龄测算器
用 HTML + JavaScript DIY 渐进式延迟法定退休年龄测算器
|
1月前
|
JavaScript 前端开发
JS如何把身份证处理成中间几位变成*号呢
JS如何把身份证处理成中间几位变成*号呢
31 1
|
3月前
|
JavaScript 前端开发 API
vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)
这篇文章介绍了如何在Vue框架中将表单输入验证逻辑封装到一个JavaScript文件中,并通过正则表达式验证邮箱、身份证、手机号等信息,同时确保两次密码输入的一致性。
|
6月前
|
JavaScript 计算机视觉
原生js通过年龄判断是否可以抽奖
原生js通过年龄判断是否可以抽奖
36 0
|
6月前
|
JavaScript
js生成18位身份证号
js生成18位身份证号
168 0
|
6月前
|
JavaScript
JS严格校验身份证号-(严格校验每一位身份号码)
JS严格校验身份证号-(严格校验每一位身份号码)
315 0
|
6月前
|
JavaScript 计算机视觉
js身份证号输入自动判断其性别和出生年月日呢?进来来来来
js身份证号输入自动判断其性别和出生年月日呢?进来来来来
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
96 2
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
122 4
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
81 4