/** 身份证15位编码规则:dddddd yymmdd xx p* dddddd:6位地区编码* yymmdd: 出生年(两位年)月日,如:910215* xx: 顺序编码,系统产生,无法确定* p: 性别,奇数为男,偶数为女** 身份证18位编码规则:dddddd yyyymmdd xxx y* dddddd:6位地区编码* yyyymmdd: 出生年(四位年)月日,如:19910215* xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女* y: 校验码,该位数值可通过前17位计算获得** 前17位号码加权因子为 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]* 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]* 如果验证码恰好是10,为了保证身份证是十八位,那么第十八位将用X来代替* 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )* i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置*/function validateIdCard(idCard){//15位和18位身份证号码的正则表达式var regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;//如果通过该验证,说明身份证格式正确,但准确性还需计算if(regIdCard.test(idCard)){if(idCard.length==18){var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ); //将前17位加权因子保存在数组里var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ); //这是除以11后,可能产生的11位余数、验证码,也保存成数组var idCardWiSum=0; //用来保存前17位各自乖以加权因子后的总和for(var i=0;i<17;i++){idCardWiSum+=idCard.substring(i,i+1)*idCardWi[i];}var idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置var idCardLast=idCard.substring(17);//得到最后一位身份证号码//如果等于2,则说明校验码是10,身份证号码最后一位应该是Xif(idCardMod==2){if(idCardLast=="X"||idCardLast=="x"){alert("恭喜通过验证啦!");}else{alert("身份证号码错误!");}}else{//用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码if(idCardLast==idCardY[idCardMod]){alert("恭喜通过验证啦!");}else{alert("身份证号码错误!");}}}}else{alert("身份证格式不正确!");}}

身份证号详细验证的正则相关推荐

  1. 身份证号的验证与解析

    最近参加一些招聘,很多时候时候身份证号都会作为表单的一部分,需要用户进行填写.有些表单在填写了身份证号之后,还需要用户手动填写籍贯.性别.出生年月.以及年龄等信息,其实这些信息都在身份证号里面包含了. ...

  2. js身份证号有效性验证

    js身份证号有效性验证 1.简述 最近做的系统有用到实名验证的,起初对于用户身份证号只是简单地使用正则表达式进行验证, 很多无效的身份证号就成了漏网之鱼. 导致后台存表里很多无效的身份证号,随便输入用 ...

  3. JavaScript 身份证号有效验证详解及实例代码

    这篇文章主要介绍了JavaScript 身份证号有效验证详解及实例代码的相关资料,需要的朋友可以参考下 JavaScript验证身份证号 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...

  4. js实现完美身份证号有效性验证+身份证与姓名匹配

    /* 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位 ...

  5. 正则表达式验证身份证号以及验证校验位的正确性

    需求:给定一个字符串,从中提取出身份证号 关于验证15位和18位身份证号的正则表达式可以参考下面的内容: http://www.cppcns.com/wangluo/re/183062.html 一. ...

  6. javascript实现完美身份证号有效性验证15位18位

    欢迎各位朋友!   前几天在开发中要求对用户的身份证号进行比较严格的校验,所以才有了这些代码, 下面的这些代码主要包括对身份证长度,地区,出生日期的校验. 方法在return时返回了一个是否通过以及提 ...

  7. 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)

    window.checkIdNumber=(function () {var vcity = {11: "北京", 12: "天津", 13: "河北 ...

  8. 身份证号合法性验证、电话手机验证、邮箱验证、银行卡验证、车牌验证

    js验证: 身份证号合法性验证 电话手机验证 邮箱验证 银行卡验证 车牌验证 //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码.出生日期.校验位验证 function Iden ...

  9. 表单校验之---校验姓名/护照正则/台湾往来通行证/校验身份证号/港澳往来通行证正则/军官证正则/检验手机号/校验银行卡号

    常用表单校验 1.校验姓名       2.护照正则      3.台湾往来通行证          4.校验身份证号         5.港澳往来通行证正则 6.军官证正则     7.检验手机号  ...

最新文章

  1. 生命简史——跨越地球40亿年
  2. centos linux分区,人文网-Linux CentOS 系统分区方法
  3. Windows保护模式学习笔记(十三)—— PWTPCD
  4. Vue——vue-chartjs[Vue 对于 Chart.js 的封装]
  5. LeetCode Algorithm 268. 丢失的数字
  6. RedisTemplate在项目中的应用
  7. dubbo源码解析(十)远程通信——Exchange层
  8. 银联在线支付---利用测试案例代码模拟支付应用(修改)
  9. 20-50k,杭州小影科技社招
  10. 【8.0、9.0c】树形列表 列标题 不对齐的问题及解决方案
  11. Android 日志工具包
  12. c++中的enum类
  13. rubygems 安装mysql时出错_Ruby gem install mysql 错误解决
  14. C语言判断四个嫌疑犯问题,C语言谁是窃贼问题代码及解析
  15. 毕业设计任务书参考地址
  16. Matplotlib之散点图绘制
  17. android往mac投屏,安卓手机怎么投屏到Mac系统中?
  18. 教你如何使用SwipeRefreshLayout来构建一个上拉加载下拉刷新框架
  19. 克里斯·麦克切斯尼《高效能人士的执行4原则》读书笔记
  20. 痞子衡嵌入式:内存读写正确性压力测试程序(memtester)

热门文章

  1. html九宫格挖正方形代码,使用css伪类before/after实现 正方形三宫格、正方形六宫格、正方形九宫格...
  2. R5S (RK3568) 通过硬盘位扩展WiFi模组组装演示,可选英特尔8265 AX200 AX210等
  3. 交互设计师学习之路:第一天 色彩学习
  4. 英语倒装句和疑问句的区别
  5. 云计算成未来发展主推动力,关于IaaS未来发展的四个猜想 | 燕麦企业云盘
  6. 工具:PsTools-windows问题定位系列小工具
  7. 手把手教你下载node
  8. nginx文件服务器中文路径,nginx配置文件支持中文路径.htm
  9. CAD的标注显示样式修改(标注单位、全局比例、两边引线隐藏)
  10. 苹果Mac没有声音,喇叭显示为灰色禁用状态如何解决?