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 一个图片切换的插件
Oct 09 Javascript
Javascript中设置默认参数值示例
Sep 11 Javascript
浅谈javascript事件取消和阻止冒泡
May 26 Javascript
jQuery中extend函数详解
Jul 13 Javascript
基于JavaScript实现瀑布流布局(二)
Jan 26 Javascript
jQuery过滤选择器经典应用
Aug 18 Javascript
js通过classname来获取元素的方法
Nov 24 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
js判断PC端与移动端跳转
Dec 24 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
vue axios post发送复杂对象问题
Jun 04 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
javascript编程起步(第一课)
2007/01/10 Javascript
Jquery ui css framework
2010/06/28 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
jsTree使用记录实例
2016/12/01 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
Python三级目录展示的实现方法
2016/09/28 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
python删除某个字符
2018/03/19 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
详解python 注释、变量、类型
2018/08/10 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
20岁生日感言
2014/01/13 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
安全责任协议书范本
2016/03/23 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书