js根据身份证号判断性别和生日

根据中国大陆的身份证号码规则,倒数第二位数字是用来表示性别的,奇数代表男性,偶数代表女性。而生日则可以通过身份证号码的前6位数字后的六位数得知。下面是一个使用JavaScript来实现根据身份证号判断性别和生日的示例代码: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		身份证<input type="text" id="sfz" onchange="tific()">
		性别<input type="text" id="xb">
		生日<input type="text" id="sr">
		<script>
			// 根据身份证号显示性别生日
			function tific() {
				let IDNu = document.getElementById('sfz');
				// 获取身份证号的输入框
				console.log(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;
				} else {
					alert('身份证正确')
				}
			
				var str = IDNu.value;
				
				console.log(str);
				var born_border = document.getElementById('sr');
				// 获取生日输入框
				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错误');
				}
			
			
				//性别 
				let sew = ''
			
				var sec = str.substring(16, 17);
				var sex = document.getElementById('xb');
				// 获取性别输入框
				if (sec % 2 == 0) {
					sew = "女";
				} else {
					sew = "男";
				}
				console.log(sew);
				sex.value = sew;
			
				for (i = 0; i < sex.length; i++)
					if (sex.options[i].value == sew) {
						sex.options[i].selected = true;
					}
			}
		</script>
	</body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值