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点赞功能实现代码 点个赞吧!
May 29 jQuery
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
jQuery异步提交表单实例
May 30 jQuery
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
使用jQuery实现动态添加小广告
Jul 11 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
jquery实现轮播图特效
Apr 12 jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 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 URL参数获取方式的四种例子
2014/02/28 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
使用jquery实现以post打开新窗口
2014/03/19 Javascript
js闭包的用途详解
2014/11/09 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
python数组复制拷贝的实现方法
2015/06/09 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
《盘古开天地》教学反思
2014/02/28 职场文书
离职保密承诺书
2014/05/28 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
求职教师自荐书
2014/06/19 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
2014年保卫工作总结
2014/12/05 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers