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的ajax从纯真网(cz88.net)获取IP地址对应地区名
Dec 02 Javascript
JavaScript实现MIPS乘法模拟的方法
Apr 17 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
深入分析javascript中console命令
Aug 14 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
Sep 04 Javascript
jQuery Validate验证框架详解(推荐)
Dec 17 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
Mar 09 Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 Javascript
简述pm2常用命令集合及配置文件说明
May 30 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
python转换摩斯密码示例
2014/02/16 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
2015/03/10 Python
python实现bucket排序算法实例分析
2015/05/04 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
WxPython实现无边框界面
2019/11/18 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
详细分析Python collections工具库
2020/07/16 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
保密工作实施方案
2014/02/24 职场文书
三年级学生评语
2014/04/23 职场文书
学生评语集锦
2015/01/04 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
关于感恩的作文
2019/08/26 职场文书
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android