JavaScript实现18位身份证最后一位校验码验证
作者:异步漫步时间:2026-10-28 13:09:01浏览:613
本文介绍如何使用JavaScript代码验证18位身份证号码最后一位校验码的正确性。通过特定的加权求和算法,程序不仅能判断输入是否合法,还能在错误时给出正确的校验位结果,代码简洁且实用。
身份证校验逻辑说明
这段程序的核心功能是根据给定的身份证号码,推算并验证其最后一位校验码是否正确。如果输入的最后一位与计算结果不符,程序不仅会提示错误,还会直接显示正确的校验位结果,逻辑清晰且具有一定的趣味性。
完整校验代码实现
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript 18位身份证号码最后一位校验码</title>
</head>
<body>
<script>
function getIDChar18(id) {
var arr = id.split(''), sum = 0, vc = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
for (var i = 0; i < 17; i++) sum += vc[i] * parseInt(arr[i]);
return ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'][sum % 11];
}
function ValidID(id) {
if (/^\d{18}$/.test(id)) {
var c = id.charAt(17), rc = getIDChar18(id);
if (c == rc) showRst('您输入的18位身份证号码正确!<br>生日:' + id.substr(6, 8) + '<br>性别:' + ['女', '男'][parseInt(id.charAt(16)) % 2]);
else showRst('您输入的18位身份证号码检验码错误,18位校验码应该为' + rc + '!');
}
else showRst('请输入18位数字的身份证号码!');
}
function showRst(msg) {document.getElementById('rst').innerHTML=msg }
</script>
<input type="text" onblur="ValidID(this.value)" />
<div id="rst"></div>
</body>
</html>
作者最新文章
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
JS对象数组转字符串为什么推荐用JSON.stringify()
2026-11-05 09:40:31
