首页 > 其他分享 >js---校验身份证号码

js---校验身份证号码

时间:2023-05-16 14:00:49浏览次数:49  
标签:return 号码 idCard 校验 js --- 身份证 var false

分享一个校验身份证号码的JS代码:

// 校验身份证号码
export function isIdCard(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(idCard.length != 18){ return false; }
  if(!regIdCard.test(idCard)){ return false; }
  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,身份证号码最后一位应该是X
  if (idCardMod == 2) {
    return (idCardLast == "X" || idCardLast == "x") ? true : false;
  } else {
    return (idCardLast == idCardY[idCardMod]) ? true : false;
  }
  return false;
}

打完收工!

标签:return,号码,idCard,校验,js,---,身份证,var,false
From: https://www.cnblogs.com/e0yu/p/17405406.html

相关文章

  • 永磁同步电机矢量控制C代码,全部从项目中总结得到,采用的S- 永磁同步电机矢量控制C代码,
    永磁同步电机矢量控制C代码,全部从项目中总结得到,采用的S-永磁同步电机矢量控制C代码,全部从项目中总结得到,采用的S-function模式仿真,与实际项目运行基本一致,可以直接复制代码移植到工程实践项目中去。ID:22390662457992412......
  • IPB64N25S3-20-ASEMI代理英飞凌中低压MOS管IPB64N25S3-20
    编辑:llIPB64N25S3-20-ASEMI代理英飞凌中低压MOS管IPB64N25S3-20型号:IPB64N25S3-20品牌:Infineon(英飞凌)封装:TO-263最大漏源电流:64A漏源击穿电压:250VRDS(ON)Max:17.5mΩ引脚数量:3沟道类型:N沟道MOS管芯片尺寸:MIL漏电流:恢复时间:5ns芯片材质:封装尺寸:如图特性:中低压MOS管、N沟道MOS管工作结......
  • steam 缺少可执行文件-安装不成功
    我也在玩游戏,结果今天更新发现无法更新并且查看本地文件啥也没有 结果就是steam版本太低无法与服务器版本进行数据交流只能下载28mb解决办法需要彻底删除steam进入到文件夹直接在关闭steam的前提下,全部删除 下载最新版然后重新安装,这个不能偷懒。需要删除重新......
  • 托盘输送机程序 硬件配置:PLC:1500SP F-1PN HMI:KT
    托盘输送机程序硬件配置:PLC:1500SPF-1PNHMI:KTP700BasicPN和上位WCS通讯是通过S7读写DB背景数据块的方式实现程序提供两个版本,V1是源自北起院,看起来比较难懂,各种状态字;V2源自外企,面向对象设计,模版功能强大,程序块封装做的好,运动控制原则上只需要硬件组态,选择相应的FB填上IO就......
  • PLC三菱PLC FX3U-48MRT 源码,原理图,PCBFX3U PLC控制器
    PLC三菱PLCFX3U-48MRT源码,原理图,PCBFX3UPLC控制器资料尺寸:主控芯片:STM32F103VET6电源:DC24V功能:1、1路RS232、1路RS485。2、24路独立输出,PC817光耦隔离,继电器输出;24路独立输入,PC817光耦隔离,独立TTL输入。预留端口。3、4个指示灯:电源、模式、运行、故障4、2路模拟量输入ADC、2......
  • IPB64N25S3-20-ASEMI代理英飞凌中低压MOS管IPB64N25S3-20
    编辑:llIPB64N25S3-20-ASEMI代理英飞凌中低压MOS管IPB64N25S3-20型号:IPB64N25S3-20品牌:Infineon(英飞凌)封装:TO-263最大漏源电流:64A漏源击穿电压:250VRDS(ON)Max:17.5mΩ引脚数量:3沟道类型:N沟道MOS管芯片尺寸:MIL漏电流:恢复时间:5ns芯片材质:封装尺寸:如图特性:中低压MOS管、......
  • SIEMENS/西门子西门子S7-1200 PID温度控制程序,PID参数经过预调节和精确调节之后得出,
    SIEMENS/西门子西门子S7-1200PID温度控制程序,PID参数经过预调节和精确调节之后得出,程序采用博图V16高级版编写,适合用于不带冷却功能的模具加热生产工艺上,项目上运用已稳定工作多时,带详细注释,可进行二次开发和扩展,也可直接使用!!本程序采用博图V16编写,需要博图版本高于V16,版本低于V......
  • .NET周报 【5月第2期 2023-05-14】
    国内文章XUnit数据共享与并行测试https://www.cnblogs.com/podolski/p/17388602.html在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间。从V2开始,默认情况下XUnit自动配置并行(参考资料),大大提升了测试速度。本文将对ASP.NETCOR......
  • BLOG-2
    一、前言先叠个甲,针对上次互评同学们的评论,我这次虽说也写上了题目,但我写了一万多字,真的没有水字数!!这次类图和圈复杂度也都加上了,麻烦各位帅哥美女给高点分儿,我也保证在互评时都打90分以上。1.知识点:接口,正则表达式,集合等等2.题量:额,菜单系列就一道题,不能说大吧。。。3.难度:我......
  • 设计模式-享元模式
    [url]http://zz563143188.iteye.com/blog/1847029[/url]享元模式(Flyweight)享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。[img]http://dl.iteye.com/upload/attachment/0083/1207/f7aae0dd-b......