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 相关文章推荐
jQuery中的.bind()、.live()和.delegate()之间区别分析
Jun 08 Javascript
Javascript拓展String方法小结
Jul 08 Javascript
Mac地址验证的javascript代码
Nov 09 Javascript
做web开发 先学JavaScript
Dec 12 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
jQuery实现简单的DIV拖动效果
Feb 19 Javascript
jquery trigger函数执行两次的解决方法
Feb 29 Javascript
通过原生JS实现为元素添加事件的方法
Nov 23 Javascript
详解angular用$sce服务来过滤HTML标签
Apr 11 Javascript
vue better-scroll插件使用详解
Jan 25 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
基于Vue实现电商SKU组合算法问题
May 29 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
php 基础函数
2017/02/10 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
python文件和目录操作方法大全(含实例)
2014/03/12 Python
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
理工大学毕业生自荐信
2013/11/01 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
二年级作文之动物作文
2019/11/13 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
一文带你探究MySQL中的NULL
2021/11/11 MySQL