<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div>
身份证号码:<input type="text" name="numberID" id="numberID" onblur="autoBackFill(this)" />
年龄:<input type="text" name="age" id="age" readonly="readonly" />
出生日期:<input type="text" name="birthData" id="birthData" readonly="readonly" />
</div>
<script>
//鼠标离开输入框触发事件
function autoBackFill(obj){
//正则表达式验证身份证号码
var ID = /^[1-9]d{5}(18|19|([23]d))d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$/;
//验证身份证号码是否正确,返回值为true false
var isCorrect = ID.test(obj.value);
if(isCorrect){
//验证通过自动计算年龄和出生日期
//截取身份证中年份
var age = obj.value.substring(6,10);
//获取当前年份
var year = new Date().getFullYear();
//获取月份
var month = obj.value.substring(10,12);
//获取出生日
var day = obj.value.substring(12,14);
//赋值
document.getElementById("age").value = year - age;
//去0处理。当月份和日期中有0时。自动省略。不显示
document.getElementById("birthData").value = month.replace(/0/g,"")+"-"+day.replace(/0/g,"");
}else {
alert("身份证号码验证失败。请重新输入.....");
}
}
</script>
</body>
</html>