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

HTML:

身份证号:<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" />

JS:

<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;
					}
			}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值