js根据身份证号判断并输出(或选择)性别select、生日,年龄。带身份证号正则,自动选中性别下拉菜单

本文提供了一个原生JS实现的身份证信息解析脚本,无需依赖jQuery。该脚本能够从输入的身份证号码中自动提取并填充出生日期、年龄和性别信息到指定的HTML元素中。代码已进行修正,确保更准确地处理身份证号码的验证和信息提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 所有说明都注释zai在了代码里,这里就不做说明了。

原生js,为了方便调用,没有使用jquery。

之前发的有些问题,这次修正了一下。

JS分:

<script>
////根据身份证号获取 生日、年龄、性别
//生日
function GetBir_and_Sex(IDNu,Birth,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 Birth=document.getElementById(Birth);

  try {
    if (typeof(eval(Birth)) == "undefined") {
      //alert('参数Birth为空');
    }else{
      Birth.value=str.substring(6, 10) + "-" + str.substring(10, 12) + "-" + str.substring(12, 14);
    }
  } 
   catch(e){
    //alert('参数Birth错误');
   }

//年龄 
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('参数Birth为空');
       }
	   else{
            if (str.substring(10, 12) < month || str.substring(10, 12) == month && str.substring(12, 14) <= day) { 
                age++; 
            } 
	   ages.value=age;
	   }
 } 
 catch(e){
    //alert('参数Birth错误');
 }
   

//性别 
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>

 html部分

 

身份证号:<input type="text" name="Edu" id="Edu" onChange="GetBir_and_Sex(this.id,'Birth','Ysold','Usex')"/><br>
性别:<select name="Usex" id="Usex"><option value="">=选择性别=</option><option value="男">男</option><option value="女">女</option></select><br>
出生年月<input type="text" name="Birth" id="Birth" /><br>
年龄:<input type="text" name="Ysold" id="Ysold" />

说明:onChange="GetBir_and_Sex(this.id,'Birth','Ysold','Usex')" 是身份证号失去焦点后触发,第一个参数是身份证号文本框的ID,Birth是出生日期文本框ID,另外两个参数同理分别是年龄和性别文本框的ID。

onChange="GetBir_and_Sex(this.id,'Birth','Ysold','Usex')"

 

以上内容为贝恩斯网络原创,方便大家借鉴使用。转载qing请注明出处哦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值