JavaScript验证18位身份证号码最后一位正确性的实现代码


Posted in Javascript onAugust 07, 2014

根据身份证号码推算出最后一位的正确性,如果不正确还会给出正确结果,非常有意思的一断程序。

<!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 相关文章推荐
select组合框option的捕捉实例代码
Sep 30 Javascript
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
Feb 23 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
用javascript关闭本窗口不弹出询问框的方法
Sep 12 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
Apr 28 Javascript
Vue过滤器的用法和自定义过滤器使用
Feb 08 Javascript
JavaScript使用FileReader实现图片上传预览效果
Mar 27 Javascript
详解webpack4多入口、多页面项目构建案例
May 25 Javascript
vue 巧用过渡效果(小结)
Sep 22 Javascript
详解小程序云开发数据库
May 20 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
Aug 06 #Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 #Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 #Javascript
js触发select onchange事件的小技巧
Aug 05 #Javascript
jquery中each遍历对象和数组示例
Aug 05 #Javascript
js 动态修改css文件的方法
Aug 05 #Javascript
JS实现关键字搜索时的相关下拉字段效果
Aug 05 #Javascript
You might like
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
Js组件的一些写法
2010/09/10 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
在Docker上开始部署Python应用的教程
2015/04/17 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
老生常谈python中的重载
2018/11/11 Python
Python 寻找局部最高点的实现
2019/12/05 Python
构建高效的python requests长连接池详解
2020/05/02 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
详解Python IO口多路复用
2020/06/17 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
python 代码运行时间获取方式详解
2020/09/18 Python
python 制作网站小说下载器
2021/02/20 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
举例说明类变量和实例变量的区别
2016/06/30 面试题
部队2014年终工作总结
2014/11/27 职场文书