本文介绍如何使用JavaScript脚本从18位身份证号码中提取关键个人信息。通过字符串截取生日部分,结合当前日期计算准确年龄,并根据第17位奇偶性判断性别。示例包含完整的HTML交互界面与JS逻辑,适用于前端数据验证场景。
JavaScript身份证信息解析原理
身份证号码包含个人关键身份信息,本文将演示如何使用JavaScript从身份证号中提取当事人的出生日期、计算当前年龄以及判断性别。
<script>
function IdCard(UUserCard,num){
if(num==1){
//获取出生日期
birth=UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);
return birth;
}
if(num==2){
//获取性别
if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {
//男
return "男";
} else {
//女
return "女";
}
}
if(num==3){
//获取年龄
var myDate = new Date();
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;
if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {
age++;
}
return age;
}
}
alert (IdCard('142223198503226111',3));
</script>
接下来将展示一段具体的代码示例,用于实现通过输入身份证号自动获取年龄和性别的功能。
具体代码实现如下:
HTML交互界面与JS逻辑实现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="https://www.jb51.net/" />
<title>本站</title>
<script type="text/javascript">
function discriCard(UUserCard)
{
UUserCard.substring(6,10)+"-"+UUserCard.substring(10,12)+"-"+UUserCard.substring(12,14);
//获取性别
if(parseInt(UUserCard.substr(16,1))%2==1)
{
alert("男");
//是男则执行代码 ...
}
else
{
alert("女");
//是女则执行代码 ...
}
//获取年龄
var myDate = new Date();
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
var age = myDate.getFullYear()-UUserCard.substring(6, 10) - 1;
if (UUserCard.substring(10,12)<month||UUserCard.substring(10,12)==month&&UUserCard.substring(12,14)<=day)
{
age++;
}
alert(age);
//年龄 age
}
window.onload=function()
{
var txt=document.getElementById("txt");
var bt=document.getElementById("bt");
bt.onclick=function(){discriCard(txt.value);}
}
</script>
</head>
<body>
<input type="text" id="txt" />
<input type="button" value="点击获取信息" id="bt" />
</body>
</html>
上述代码满足了功能需求。在文本输入框中输入有效的身份证号码,点击按钮后,系统将弹出显示计算得出的年龄及性别信息。