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实现拖动效果的实例代码
Jun 25 jQuery
Vue中正确使用jQuery的方法
Oct 30 jQuery
基于jquery.page.js实现分页效果
Jan 01 jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
jquery的 filter()方法使用教程
Mar 22 jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
JQuery扩展对象方法操作示例
Aug 21 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
jQuery实现简单三级联动效果
Sep 05 jQuery
jQuery实现查看图片功能
Dec 01 jQuery
jQuery实现电梯导航模块
Dec 22 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中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php操作mongoDB实例分析
2014/12/29 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
毕业生自荐书
2014/02/03 职场文书
工作态度检讨书
2014/02/11 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
中学生打架检讨书
2014/10/13 职场文书
会计求职简历自我评价
2015/03/10 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
python中pymysql包操作数据库方法
2022/04/19 Python