JavaScript 身份证号有效验证详解及实例代码


Posted in Javascript onOctober 20, 2016

最近需要对身份证合法性进行验证,实名验证是不指望了,不过原来的验证规则太过简单,只是简单的验证了身份证长度,现在业务需要加强下身份证验证规则,网上找到了不少资料,不过都不合偶的心意,无奈只好直接写一个,代码还是用自己的舒服哈

JavaScript验证身份证号

<%@ page language="java" contentType="text/html; charset=GB18030"
  pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>身份证验证</title>
<script type="text/javascript"> 
var arr2=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
var arr3=[1,0,'X',9,8,7,6,5,4,3,2];
function checkid(){
  var t=document.getElementById("gettext").value;
  if(t.length==18){
    var arr=t.split('');
    var s;
    var reg = /^\d+$/;
    var pd=0;
    for(i=0;i<17;i++){
      if(reg.test(arr[i])){
        s=true;
        pd=arr[i]*arr2[i]+pd;
      }else{
        s=false;
        break;
      }
    }
    if(s=true){
      var r=pd%11;
      if(arr[17]==arr3[r]){
        document.getElementById("show").innerHTML="身份证号合法  尾号为:"+arr3[r];
      }else{
        document.getElementById("show").innerHTML="非合法身份证号";
      }
    }
    
  }else{
    document.getElementById("show").innerHTML="非合法身份证号";
  }
}
</script>
</head>
<body >
<input id="gettext" type="text" size="30" onkeyup="checkid()">
<p id="show"></p><br>
</body>
</html>

根据网上的身份证的计算公式写的一个验证身份证号的js

第一步:将身份证号码的第1位数字与7相乘;将身份证号码的第2位数字与9相乘;将身份证号码的第3位数字与10相乘;将身份证号码的第4位数字与5相乘;将身份证号码的第5位数字与8相乘;将身份证号码的第6位数字与4相乘;将身份证号码的第7位数字与2相乘;将身份证号码的第8位数字与1相乘;将身份证号码的第9位数字与6相乘;将身份证号码的第10位数字与3相乘;将身份证号码的第11位数字与7相乘;将身份证号码的第12位数字与9相乘;将身份证号码的第13位数字与10相乘;将身份证号码的第14位数字与5相乘;将身份证号码的第15位数字与8相乘;将身份证号码的第16位数字与4相乘;将身份证号码的第17位数字与2相乘。

第二步:将第一步身份证号码1~17位相乘的结果求和,全部加起来。

第三步:用第二步计算出来的结果除以11,这样就会出现余数为0,余数为1,余数为2,余数为3,余数为4,余数为5,余数为6,余数为7,余数为8,余数为9,余数为10共11种可能性。

第四步:如果余数为0,那对应的最后一位身份证的号码为1;如果余数为1,那对应的最后一位身份证的号码为0;如果余数为2,那对应的最后一位身份证的号码为X;如果余数为3,那对应的最后一位身份证的号码为9;如果余数为4,那对应的最后一位身份证的号码为8;如果余数为5,那对应的最后一位身份证的号码为7;如果余数为6,那对应的最后一位身份证的号码为6;如果余数为7,那对应的最后一位身份证的号码为5;如果余数为8,那对应的最后一位身份证的号码为4;如果余数为9,那对应的最后一位身份证的号码为3;如果余数为10,那对应的最后一位身份证的号码为2。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
Nov 30 Javascript
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
跟我学习javascript的this关键字
May 28 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
几行js代码实现自适应
Feb 24 Javascript
js 获取图像缩放后的实际宽高,位置等信息
Mar 07 Javascript
vue如何引用其他组件(css和js)
Apr 13 Javascript
vue实现商城上货组件简易版
Nov 27 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
Vue中computed与methods的区别详解
Mar 24 Javascript
浅谈js闭包理解
Mar 28 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
AngularJS  双向数据绑定详解简单实例
Oct 20 #Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 #Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 #Javascript
JS调用某段SQL语句的方法
Oct 20 #Javascript
Angularjs 设置全局变量的方法总结
Oct 20 #Javascript
seajs学习之模块的依赖加载及模块API的导出
Oct 20 #Javascript
Angular表单验证实例详解
Oct 20 #Javascript
You might like
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
PHP中list方法用法示例
2016/12/01 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
python文件操作之目录遍历实例分析
2015/05/20 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
《花木兰》教学反思
2014/04/09 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
导游词300字
2015/02/13 职场文书
通用员工手册范本
2015/05/14 职场文书
2016年情人节广告语
2016/01/28 职场文书
初中地理教学反思
2016/02/19 职场文书
作文之亲情600字
2019/09/23 职场文书