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 相关文章推荐
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
May 26 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
清除js缓存的多种方法总结
Dec 09 Javascript
jq checkbox 的全选并ajax传参的实例
Apr 01 Javascript
vue内置组件transition简单原理图文详解(小结)
Jul 12 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
小程序getLocation需要在app.json中声明permission字段
Apr 04 Javascript
JavaScript之数组扁平化详解
Jun 03 Javascript
功能完善的小程序日历组件的实现
Mar 31 Javascript
微信小程序整个页面的自动适应布局的实现
Jul 12 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
用户的详细注册和判断
2006/10/09 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python实现的config文件读写功能示例
2019/09/24 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
sklearn的predict_proba使用说明
2020/06/28 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
怎样写离婚协议书
2014/09/10 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
心得体会格式及范文
2016/01/25 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL