一、JS(JavaScript)验证身份证号码格式的合法性,前端工程师会用到JavaScript验证身份证号码是否合法,这里分享一段本人多年以前多写的JavaScript验证输入身份证号码合法性的代码,因为本人前后端都有涉及,这是本人之前上传到百度文库的,写得不太完美,望多指教!只验证18位身份证号码,18位身份证号码有相应的规则,代码片段里有详细的说明,方便学习交流。

二、源代码

    /**检验身份证号码是否合法15位身份证号码组成:ddddddyymmddxxs共15位,其中:dddddd为6位的地方代码,根据这6位可以获得该身份证号所在地。yy为2位的年份代码,是身份证持有人的出身年份。mm为2位的月份代码,是身份证持有人的出身月份。dd为2位的日期代码,是身份证持有人的出身日。这6位在一起组成了身份证持有人的出生日期。xx为2位的顺序码,这个是随机数。s为1位的性别代码,奇数代表男性,偶数代表女性。     18位身份证号码组成:ddddddyyyymmddxxsp共18位,其中:其他部分都和15位的相同。年份代码由原来的2位升级到4位。最后一位为校验位。校验规则是:(1)十七位数字本体码加权求和公式S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和Ai:表示第i位置上的身份证号码数字值Wi:表示第i位置上的加权因子Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)计算模Y = mod(S, 11)(3)通过模得到对应的校验码Y: 0 1 2 3 4 5 6 7 8 9 10校验码: 1 0 X 9 8 7 6 5 4 3 2也就是说,如果得到余数为1则最后的校验位p应该为对应的0.如果校验位不是,则该身份证号码不正确。**/function isValidIdCard(idCard){var ret=false;var w=[7 ,9,10,5,8,4,2, 1,6, 3, 7, 9 ,10, 5 ,8 ,4, 2];          if(idCard.length == 18){//身份证号码长度必须为18,只要校验位正确就算合法var crc=idCard.substring(17);var a =new Array();var sum=0;for(var i=0;i<17;i++){a.push(idCard.substring(i,i+1));sum+=parseInt(a[i],10)*parseInt(w[i],10);//alert(a[i]);}sum%=11;var res="-1";switch (sum){case 0:{res="1";break;}case 1:{res="0";break;}case 2:{res="X";break;}case 3:{res="9";break;}case 4:{res="8";break;}case 5:{res="7";break;}case 6:{res="6";break;} case 7:{res="5";break;} case 8:{res="4";break;} case 9:{res="3";break;}case 10:{res="2";break;}}if(crc.toLowerCase()==res.toLowerCase()){ret=true; }//ret=true; }/*else if(idCard.length == 15){//15位的身份证号,只验证是否全为数字var pattern = /\d/;ret=pattern.test(idCard); }*/return ret;      }

JS(JavaScript)验证身份证号码格式的合法性相关推荐

  1. JS正则表达式验证身份证号码

    function isCardNo(card) { // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{1 ...

  2. js正则验证身份证号码(最后一位x不区分大小写)

    /*** 身份证号合法性验证 * 支持15位和18位身份证号* 支持地址编码.出生日期.校验位验证*/function IdentityCodeValid(code) { var city={11:& ...

  3. js正则验证身份证号码是否真实有效

    网上找了很多js,jQuery 正则表达式验证身份证是否有效的方法,多数是验证是否15位数字18位数字或者最后一位是Xx字母,都不太有效避免随便输入数字这种情况.例如下面两种: //身份证正则表达式( ...

  4. JS正则表达式验证身份证号码、真实姓名

    js验证身份证号: var idNo = $('#id_card_no').val(); var regIdNo = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$) ...

  5. js正则验证身份证号码并 根据号码获取生日和性别

    最近项目中碰到一个需求,根据用户输入的身份证号码自动识别生日,和性别,为此专门在网上找了下资料了解了下,建议先了读一遍下边的文章 身份证信息介绍: https://baijiahao.baidu.co ...

  6. js验证身份证号码是否正确(整理)

    使用:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ if(!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(v ...

  7. js验证身份证号码包括最后一位字母

    通过正则进行js验证身份证号码: var numRegex = /^([a-zA-Z\d_]{1,18})$/;if (!numRegex.test(val)) {return '请输入身份证号码或格 ...

  8. JavaScript正则表达式验证身份证号码是否合法

    在用户注册页面有些需求要求的比较严格,需要对身份证js验证是否合法,通过此功能严格此系统软件,从而过滤到很多水客.下面就此实现方法给大家讲解下. 很多时候我们都是通过一组正则表达式来判断用户输入的身份 ...

  9. 使用js验证身份证号格式以及身份证号中的生日验证

    由于不管是测试项目练手还是实际项目开发,都应该考虑数据的严密性和软件的通俗易懂的实用性,下面是我用js实现的验证身份证号格式以及身份证号中的生日验证代码 //生日移出点击事件验证身份证号中的生日验证 ...

最新文章

  1. 《区块链原理、设计与应用》一3.3 征信和权属管理
  2. BZOJ 2055: 80人环游世界 [上下界费用流]
  3. 【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )
  4. 修改sublime列编辑快捷键
  5. 从零开始学_JavaScript_系列(16)——CSSlt;3gt;(文本、对齐、圆角、盒模型、背景)...
  6. 【数据竞赛】席卷Kaggle的调参神器,NN和树模型通吃!
  7. 因新漏洞问题 Firefox 49发布时间将延期一周
  8. 居中弹出一个层,打开一个文件。
  9. HDU2602Bone Collector(DP,0/1背包)
  10. Android -- tools
  11. 计算机课flash课件,flash动画制作获奖课件
  12. c++实现 龙格库塔经典4阶算法
  13. tomcat Note: further occurrences of HTTP header parsing errors will be logged at DEBUG
  14. go浏览器java_GO浏览器JAVAWP版下载_GO浏览器JAVA2016最新版_GO浏览器JAVA1.2.2-华军软件园...
  15. android 手机如何截屏,安卓手机一般怎么截屏 安卓如何截图手机屏幕 - 云骑士一键重装系统...
  16. 数论基础题(1) 费马引理+卡特兰数+Lucas定理+同余方程+扩欧
  17. AAAI 2023 | CF-ViT:由粗到细的两阶段动态推理架构
  18. C语言_关于文件内容删除的两个方法总结
  19. 【excel技巧读书笔记005】快速隔行填充
  20. iView的table表格购物车的使用案例

热门文章

  1. 追寻绿色世界、草木清香
  2. PAT 甲级1116 1117 1118 1119 解题报告
  3. 使用openocd调试Linux内核,OpenOCD-JTAG调试(示例代码)
  4. (shell批量版)二进制高可用安装k8s集群v1.23.5版本,搭配containerd容器运行时
  5. usb网卡转接口被识别为光盘
  6. Android Studio分析工具ApkAnalyzer基本使用
  7. 海康威视RTSP取流
  8. 2022-iOS个人开发者账号申请流程
  9. Gym - 101606L Lizard Lounge——LIS
  10. Pytorch系列笔记(六)