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 相关文章推荐
JQuery实现的在新窗口打开链接的方法小结
Apr 22 Javascript
js去除空格的12种实用方法
Nov 08 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
Dec 16 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
JavaScript中的普通函数与构造函数比较
Apr 07 Javascript
jquery实现手风琴效果
Nov 20 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
基于JavaScript中标识符的命名规则介绍
Jan 06 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
详解原生JS动态添加和删除类
Mar 26 Javascript
详解小程序如何改变onLoad的执行时机
Nov 01 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
DC动漫人物排行
2020/03/03 欧美动漫
PHP 开发工具
2006/12/06 PHP
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
Python MySQLdb Linux下安装笔记
2015/05/09 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
英国二手物品交易网站:Preloved
2017/10/06 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
师范生的个人求职信范文
2014/01/04 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
演讲稿怎么写
2014/01/07 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
python利用while求100内的整数和方式
2021/11/07 Python
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技