jquery 校验中国身份证号码实例详解


Posted in jQuery onApril 11, 2017

jquery 校验中国身份证号码实例详解

大陆18位身份证(第二代身份证)

身份号码是一组具有特征组合码,由十七位数字本体码和一位校验码组成。

排列顺序从左至右依次为:六位数字地区码,八位数字生日码,三位数字顺序码和一位数字校验码。

校验方法:

(1)先对前17位数字的权求和

        S = Sum(Ci * Vi), i = 0, ... , 16

        Ci:表示身份证号码上第i位置的数字值

        Vi:表示第i位置上的“加权因子”

        加权因子Vi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

(2)计算模(固定算法)

        Y = mod(S, 11)

(3)将计算模Y与对应的校验码校验

        Y:        0 1 2 3 4 5 6 7 8 9 10 (通过Y取得对应校验码与身份证的第18位校验)

        校验码: 1 0 X 9 8 7 6 5 4 3 2

实例代码:

function check_id(value){
  var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子 
  var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码 
  if(/^\d{17}\d|x$/i.test(value)){  
    var sum = 0, idx; 
    for(var i = 0; i < value.length - 1; i++){ 
      // 对前17位数字与权值乘积求和 
      sum += parseInt(value.substr(i, 1), 10) * arrExp[i]; 
    } 
    // 计算模(固定算法) 
    idx = sum % 11; 
    // 检验第18为是否与校验码相等 
    return arrValid[idx] == value.substr(17, 1).toUpperCase(); 
  }else{ 
    return false; 
  } 
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

jQuery 相关文章推荐
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 jQuery
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
jQuery实现轮播图源码
Oct 23 jQuery
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
jQuery实现异步上传一个或多个文件
Aug 17 jQuery
基于jQuery实现瀑布流页面
Apr 11 #jQuery
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 #jQuery
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 #jQuery
vue中如何引入jQuery和Bootstrap
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 #jQuery
jQuery EasyUI之验证框validatebox实例详解
Apr 10 #jQuery
You might like
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
python实现各进制转换的总结大全
2017/06/18 Python
Python进程间通信之共享内存详解
2017/10/30 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
为什么要有struct关键字
2012/05/08 面试题
医学生实习自荐信
2013/10/01 职场文书
总经理任命书范本
2014/06/05 职场文书
淘宝客服工作职责
2014/07/11 职场文书
教师演讲稿开场白
2014/08/25 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
担保书范本
2015/01/20 职场文书
单身证明格式样本
2015/06/15 职场文书
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL