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 相关文章推荐
JavaScript实现禁止后退的方法
Dec 27 Javascript
面向对象Javascript核心支持代码分享
May 23 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
Jun 28 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
第一次接触神奇的Bootstrap
Oct 14 Javascript
微信小程序 video组件详解
Oct 25 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
js前端实现图片懒加载(lazyload)的两种方式
Apr 24 Javascript
JavaScript箭头(arrow)函数详解
Jun 04 Javascript
总结js中的一些兼容性易错的问题
Dec 18 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
Typescript的三种运行方式(小结)
Sep 18 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
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
python学习教程之使用py2exe打包
2017/09/24 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python批量图片处理简单示例
2019/08/06 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
特步官方商城:Xtep
2017/03/21 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
法学毕业生自荐信
2013/11/13 职场文书
学习十八大报告感言
2014/02/04 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
2014年建筑工作总结
2014/11/26 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
实习单位鉴定意见
2015/06/04 职场文书
同意报考公务员证明
2015/06/17 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
Redis入门基础常用操作命令整理
2022/06/01 Redis