JS编写函数实现对身份证号码最后一位的验证功能


Posted in Javascript onDecember 29, 2016

二代身份证号码为18位,其最后一位(第18位)的计算方法为:

1、 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:

7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2

2、 将这17位数字和系数相乘的结果相加

3、 用加出来和除以11,看余数是多少?

4、 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。每个数字所对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2。即,如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。

例如:某男性的身份证号码是34052419800101001X。验证其最后一位是否正确时,首先需要得出前17位的乘积和是189,然后用189除以11得出的结果是17+2/11,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的数字是x。所以,可以判定此身份证号码的最后一位是合格的。

编写验证方法如下:

//验证方法
function verifyCode(id){
 if(id.length !=18 )
  return false;
 /*1、从第一位到第十七位的系数分别为:
   7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 
   将这17位数字和系数相乘的结果相加。 */ 
 var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
 var sum = 0;
 for(var i=0; i<arr.length; i++){
  sum += parseInt(id.charAt(i)) * arr[i];
 }
 //2、用加出来和除以11,看余数,
 var c = sum%11;
 //3、分别对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2
 var ch = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
 var code = ch[c];
 var last = id.charAt(17);
 last = last=='x' ? 'X': last;
 return last == code;
 }

测试该方法:

var id = "34052419800101001X";
 console.log(verifyCode(id));

以上所述是小编给大家介绍的JS编写函数实现对身份证号码最后一位的验证功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
iis6+javascript Add an Extension File
Jun 13 Javascript
给Javascript数组插入一条记录的代码
Aug 30 Javascript
javascript克隆对象深度介绍
Nov 20 Javascript
json实现前后台的相互传值详解
Jan 05 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
获取jqGrid中选择的行的数据
Nov 30 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
Jan 18 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
Mar 01 Javascript
vue配置文件实现代理v2版本的方法
Jun 21 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 Javascript
js实现掷骰子小游戏
Oct 24 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 #Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 #Javascript
jQuery+HTML5实现弹出创意搜索框层
Dec 29 #Javascript
Bootstrap3 内联单选和多选框
Dec 29 #Javascript
Bootstrap3 多选和单选框(checkbox)
Dec 29 #Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 #Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 #Javascript
You might like
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
非常漂亮的JS代码经典广告
2007/10/21 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
js获取域名的方法
2015/01/27 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
C++面试题目
2013/06/25 面试题
应聘面试自我评价
2014/01/24 职场文书
设计专业自荐信
2014/06/19 职场文书
孩子教育的心得体会
2014/09/01 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
HDFS免重启挂载新磁盘
2022/04/06 Servers
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技