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 相关文章推荐
js滚动条多种样式,推荐
Feb 05 Javascript
运用jquery实现table单双行不同显示并能单行选中
Jul 25 Javascript
jquery下onpropertychange事件的绑定方法
Aug 01 Javascript
jQuery实现的Div窗口震动特效
Jun 09 Javascript
EasyUI中combobox默认值注意事项
Mar 01 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
May 31 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
bootstrap+jQuery实现的动态进度条功能示例
May 25 jQuery
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
Dec 12 Javascript
个人小程序接入支付解决方案
May 23 Javascript
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
Angular+Ionic使用queryParams实现跳转页传值的方法
Sep 05 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关联数组的10个操作技巧
2013/01/21 PHP
基于php缓存的详解
2013/05/15 PHP
php+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
Python OS模块常用函数说明
2015/05/23 Python
全面理解Python中self的用法
2016/06/04 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
Python argparse模块应用实例解析
2019/11/15 Python
Python算法中的时间复杂度问题
2019/11/19 Python
python中property和setter装饰器用法
2019/12/19 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
远东集团网络工程师面试题
2014/10/20 面试题
科研课题实施方案
2014/03/18 职场文书
体操比赛口号
2014/06/10 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
销售员岗位职责范本
2015/04/11 职场文书
初中家长意见
2015/06/03 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS