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 相关文章推荐
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
实现图片预加载的三大方法及优缺点分析
Nov 19 Javascript
js实现顶部可折叠的菜单工具栏效果实例
May 09 Javascript
Knockoutjs 学习系列(一)ko初体验
Jun 07 Javascript
jQuery中Datatables增加跳转到指定页功能
Feb 08 Javascript
jQuery源码分析之sizzle选择器详解
Feb 13 Javascript
前端MVVM框架解析之双向绑定
Jan 24 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
Feb 23 Javascript
详解Vue3中对VDOM的改进
Apr 23 Javascript
Element Tooltip 文字提示的使用示例
Jul 26 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 中检查或过滤IP地址的实现代码
2011/11/27 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
详解webpack babel的配置
2018/01/09 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
[46:55]Ti4 冒泡赛第二轮 LGD vs C9
2014/07/14 DOTA
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
python如何为创建大量实例节省内存
2018/03/20 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
canvas使用注意点总结
2013/07/19 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
群众路线剖析材料
2014/02/02 职场文书
贷款承诺书范文
2014/05/19 职场文书
2014教师年度工作总结
2014/11/10 职场文书
表扬信范文
2015/05/04 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python