一代身份证号码是十五位, 2013年1月1日开始,咱们中国全面停止使用一代身份证了。

二代身份证号码:

  • 1-6位:表示行政区划的代码。

    • 1、2位,所在省(直辖市,自治区)代码;
    • 3、4位,所在地级市(自治州)代码;
    • 5、6位,所在区(县,自治县,县级市)的代码;
  • 7-14位:表示出生年、月、日
  • 15-16位:所在地派出所代码
  • 17位:性别。奇数(1、3、5、7、9)男性,偶数(2、4、6、8、0)女性
  • 18位:校验位,存在十一个值:0,1,2,3,4,5,6,7,8,9,X,其值是用固定公式根据前面十七位计算出来的。

第十八位的数字是根据ISO 7064:1983.MOD 11-2校验码算法计算出来的

// 函数参数必须是字符串,因为二代身份证号码是十八位,而在javascript中,十八位的数值会超出计算范围,造成不精确的结果,导致最后两位和计算的值不一致,从而该函数出现错误。
// 详情查看javascript的数值范围
function checkIDCard(idcode){// 加权因子var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];// 校验码var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];var code = idcode + "";var last = idcode[17];//最后一位var seventeen = code.substring(0,17);// ISO 7064:1983.MOD 11-2// 判断最后一位校验码是否正确var arr = seventeen.split("");var len = arr.length;var num = 0;for(var i = 0; i < len; i++){num = num + arr[i] * weight_factor[i];}// 获取余数var resisue = num%11;var last_no = check_code[resisue];// 格式的正则// 正则思路/*第一位不可能是0第二位到第六位可以是0-9第七位到第十位是年份,所以七八位为19或者20十一位和十二位是月份,这两位是01-12之间的数值十三位和十四位是日期,是从01-31之间的数值十五,十六,十七都是数字0-9十八位可能是数字0-9,也可能是X*/var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;// 判断格式是否正确var format = idcard_patter.test(idcode);// 返回验证结果,校验码和格式同时正确才算是合法的身份证号码return last === last_no && format ? true : false;
}

Js二代身份证号码正则验证相关推荐

  1. 【JS】Js二代身份证号码正则验证

    Js二代身份证号码正则验证代码: export function checkIDCard(idcode) {// 加权因子var weight_factor = [7,9,10,5,8,4,2,1,6 ...

  2. js实现身份证号码有效性验证

    //Js获取日期.月初时的前天.昨天.今天.明天 function getDay(day) {var today = new Date();var targetday_milliseconds = t ...

  3. 二代身份证号码验证器[超简单]

    一代身份证号码是十五位, 2013年1月1日开始,咱们中国全面停止使用一代身份证了. 二代身份证号码: 1-6位:表示行政区划的代码. 1.2位,所在省(直辖市,自治区)代码: 3.4位,所在地级市( ...

  4. Js实现中国公民身份证号码有效性验证

    2019独角兽企业重金招聘Python工程师标准>>> 参考: Java实现中国公民身份证号码有效性验证 Php实现中国公民身份证号码有效性验证 本文将使用JavaScript实现中 ...

  5. js根据身份证号码判断性别和年龄

    /**这是一个超实用的用js根据身份证号码判断性别男女的特效代码,详细看下面的*/ /** 根据身份证号码判断性别 15位身份证号码:第7.8位为出生年份(两位数),第9.10位为出生月份,第11.1 ...

  6. JS身份证号码校验,JS根据身份证号码获取出生年月日,JS根据出生年月日获取年龄,JS根据身份证号码获取性别

    目录 1.JS身份证号码校验 2.JS根据身份证号码获取出生年月日 3.JS根据出生年月日获取年龄 4.JS根据身份证号码获取性别 1.JS身份证号码校验 /*** 身份证校验** @export* ...

  7. 【详细说明】二代身份证号码的组成结构(含校验码算法与行政区划代码)

    文章内容:二代身份证号码的组成结构(含校验码算法与行政区划代码) 关键词组:身份证号码.组成.校验码.行政区划码 使用软件:无 虚拟环境:无 操作系统:Windows 11 文章目录 一.身份证号码划 ...

  8. 【身份证识别】形态学二代身份证号码识别系统【含GUI源码 948期】

    一.代码运行视频(哔哩哔哩) [身份证识别]形态学二代身份证号码识别系统[含GUI源码 948期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MA ...

  9. 国内身份证号码的验证

    本方法主要用于国内身份证号码的验证,支持15位与最新的18位身份证号码. function is_idcard( $id ){$id = strtoupper($id);$regx = "/ ...

最新文章

  1. web测试的平台的开发
  2. 近期学习的原生JS知识以及jQuery框架
  3. rateLimiter令牌桶限流算法
  4. 论文浅尝 – KDD2020 | 使用图对比编码的图神经网络预训练模型
  5. 老师们的神操作,但凡有一个是我的老师,我必定能上清华
  6. ResNet及其变种的结构梳理、有效性分析与代码解读(PyTorch)
  7. 查询添加条件_从文件夹中提取符合条件的记录,只需一键
  8. 30岁,没有月入过万算失败吗?用可视化分析30岁的人收入真相
  9. python有哪些用途-python是什么?python的用途
  10. python和区块链哪个好_10个最流行的Python区块链开源项目
  11. Mysql 数据库/表 备份 与 还原
  12. 聚类-----高斯混合模型
  13. KOD: Linux 命令行安装
  14. Win10下VS2019 C++ opencv3.4.x 环境搭建过程 | 找不到opencv_world347d.dll | error LNK2019: 无法解析的外部符号
  15. 回头再说012 盘点我的2008年
  16. Phaser学习笔记
  17. 修改已经上线的小程序名称
  18. 计算机二级必过知识点大全,计算机二级ms-office办公软件必过知识点.doc
  19. MFC 多线程编程总结
  20. oracle em13c install,如何使用Oracle EM13c管理数据库私有云

热门文章

  1. 阀门的开关方向_阀门的开关方向如何正确操作阀门
  2. POI导出excel并设置单元格样式和单元格内容中文自适应
  3. 全新的Unity移动游戏优化解决方案
  4. 2012年9月ITbrand电信业4G技术品牌排行榜
  5. Matlab求矩阵的Jordan标准形
  6. RestTemplate请求Could not extract response: no suitable HttpMessageConverter found for response type..
  7. 近7成开发者无开源收入、最想操作系统开源、Java最受欢迎 | 揭晓中国开源开发者现状
  8. 笔记本电脑(laptop)通常具备使用USB设备的功能.实现接口回调(使用面向对象思想编程:接口,多态等).
  9. graphpad两组t检验_SPSS如何比较样本两组样本的组内和组间差异(含GraphPad Prism绘图)...
  10. D3.js的v5版本入门教程(第十四章)—— 力导向图