当前位置: 首页 > news >正文

身份证号码校验

根据《新版外国人永久居留身份证适配性改造要点》,公司需要把代码中对身份证的校验进行优化

就文档内容可以看到需要优化的要点是:
新版永居证号码以 9 开头 + 受理地区代码+出生日期+顺序码+校验码;(共18位)
eg:932682198501010017
既往版本永居证号码 由三位国家和地区代码开头 + 地址码+顺数码+校验码;(共15位)
eg:KAZ110090123105

在这里插入图片描述

// 身份证号码验证
export function testIdCard(id) {// 1 "验证通过!", 0 //校验不通过 // id为身份证号码// 新 增加新版永居证号码 以9开头再加受理区域var format = /^(((([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4})|(([9](([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2])))\d{3}))(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/;var format15Foreign = /^[a-zA-Z]{3}[0-9]{4}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{2}$/;//号码规则校验if (!(format.test(id) || format15Foreign.test(id))) {return { 'status': 0, 'msg': '身份证号码不合规' };}//区位码校验if (id.length == 18) {//出生年月日校验  前正则限制起始年份为1900;var year = id.substr(6, 4),//身份证年month = id.substr(10, 2),//身份证月date = id.substr(12, 2),//身份证日time = Date.parse(month + '-' + date + '-' + year),//身份证日期时间戳datenow_time = Date.parse(new Date()),//当前时间戳dates = (new Date(year, month, 0)).getDate();//身份证当月天数if (time > now_time || date > dates) {return { 'status': 0, 'msg': '出生日期不合规' }}//校验码判断var c = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);  //系数var b = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); //校验码对照表var id_array = id.split("");var sum = 0;for (var k = 0; k < 17; k++) {sum += parseInt(id_array[k]) * parseInt(c[k]);}if (id_array[17].toUpperCase() != b[sum % 11].toUpperCase()) {return { 'status': 0, 'msg': '身份证校验码不合规' }}}return { 'status': 1, 'msg': '校验通过' }
}
// 城市代码列表  11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林",23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西",37: "山东", 41: "河南", 42: "湖北 ", 43: "湖南", 44: "广东", 45: "广西", 46: "海南",50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏 ", 61: "陕西", 62: "甘肃",63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门 "
// 地址码判断
([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}// 9 开头再加上 地址码判断
([9](([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2])))\d{3}

正则可视化图片转化工具:https://c.runoob.com/front-end/7625/#!flags=&re=%5E(a%7Cb)*%3F%24
format 正则可视化图片(看不清可以自己用上分链接工具试一下)
在这里插入图片描述

相关文章:

身份证号码校验

根据《新版外国人永久居留身份证适配性改造要点》&#xff0c;公司需要把代码中对身份证的校验进行优化 就文档内容可以看到需要优化的要点是&#xff1a; 新版永居证号码以 9 开头 受理地区代码出生日期顺序码校验码&#xff1b;&#xff08;共18位&#xff09; eg&#xff…...

ArcGIS如何处理并加载Excel中坐标数据?

做GIS行业的各位肯定免不了跟数据打交道&#xff0c;其中数据的处理说复杂也复杂&#xff0c;因为我们要花时间去做数据的转换及调整工作&#xff0c;那说简单也简单&#xff0c;因为我们有很多的工具可以使用&#xff0c;那么今天我就给大家带来处理Excel中的GIS数据中的其中一…...

C++标准模板(STL)- 类型支持 (类型修改,从给定类型移除 const 或/与 volatile 限定符,std::remove_cv)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…...

nodejs搭建本地服务

前端开发时想自己有个本地服务如下操作直接上干货 1.在桌面上直接在powerShell 输入命令行 npm install -g express-generator 然后 npm install -g express 然后新建一个例如server的文件夹 在powerShell执行 express myStudy -e 端口号默认是3000 直接在地址栏输入 http://…...

如何看待Unity新收费模式?

Unity新收费模式的变化主要在于将收费重心从功能分级收费转变为资源使用量收费&#xff0c;这个改变已经引起了一定的争议和反响。以下是我个人的看法&#xff1a; 优点&#xff1a; 更公平的收费方式&#xff1a;新的收费模式将更加公平&#xff0c;用户只需按照实际使用的数…...

Excel数据可视化—波士顿矩阵图【四象限图】

EXCEL系列文章目录 Excel系列文章是本人亲身经历职场之后萌发的想法&#xff0c;为什么Excel覆盖如此之广&#xff0c;几乎每个公司、学校、家庭都在使用&#xff0c;但是它深藏的宝藏功能却很少被人使用&#xff0c;PQ、BI这些功能同样适用于数据分析&#xff1b;并且在一些需…...

【Java】智慧工地管理系统源代码,支持二次开发,SaaS模式

智慧工地系统围绕工程现场人、机、料、法、环及施工过程中质量、安全、进度、成本等各项数据满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效。 一、行业现状 1、施工现场管理难&#xff1a;安全事故频发&#xff0c;人工巡检难度大&#xff0c;质量进度协同难等…...

Lstm+transformer的刀具磨损预测

视频讲解: 基于Lstm+transformer的刀具磨损预测实战_哔哩哔哩_bilibili 结果展示: 数据展示: 主要代码: # pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/ # pip install optuna -i https://pypi.tuna.tsinghua.edu.cn/simple/ import numpy as np…...

本机idea连接虚拟机中的Hbase

相关环境&#xff1a; 虚拟机&#xff1a;Centos7 hadoop版本:3.1.3 hbase版本:2.4.11 zookeeper版本:3.5.7 Java IDE:IDEA JDK&#xff1a;8 步骤 步骤一&#xff1a;在idea创建一个maven项目 步骤二&#xff1a;在虚拟机里找到core-site.x…...

.NET中的Object类学习3_MemberwiseClone方法

文章目录 一、前言二、Object.MemberwiseClone方法1 定义2 示例3 备注 三、总结 一、前言 按照MSDN文档的章节顺序来&#xff0c;本文应该是第五节。 但是学了上一节 Finalize之后&#xff0c;发现其内容对实际开发帮助不大。 所以这次跳过了前面的GetHashCode、GetType章节&a…...

鼎捷前端开发校招岗技术面面经(已过)

前言 鼎捷一共两面&#xff0c;一面针对技术&#xff0c;这篇博客记录下我认为有价值的问题。 有价值的提问 js类的继承的方式 es5&#xff0c;涉及到原型、原型链的继承&#xff1b; es6&#xff0c;类与对象&#xff0c;extends&#xff0c;super&#xff1b; 还问到Vue…...

Rockchip平台rk3588源码下载编译(基于Android13)

Rockchip平台rk3588源码下载编译(基于Android13) 源码下载 下载地址 repo init --repo-url https://gerrit.rock-chips.com:8443/repo-release/tools/repo -u https://gerrit.rock-chips.com:8443/Android_T/manifests.git -m Android13.xml服务器镜像下载 repo init --rep…...

RuntimeError: PyPI no longer supports ‘pip search‘ (or XML-RPC search).

RuntimeError: PyPI no longer supports ‘pip search’ (or XML-RPC search). 1. ERROR: XMLRPC request failed Deprecated Methods https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods PyPI XMLRPC Search Disabled https://status.python.org/inc…...

21款奔驰GLS450升级23P驾驶辅助 提升安全出行

辅助驾驶越来越多的被大家所青睐&#xff01;为了提升驾驶安全性和舒适便捷性奔驰改装原厂半自动驾驶23P辅助系统 23P智能辅助驾驶系统还是很有必要的&#xff0c;因为在跑高速的时候可以使用23P智能驾驶的自动保持车速&#xff0c;保持车距&#xff0c;车道自动居中行驶以及自…...

iOS越狱检测总结

文章目录 前言检测越狱文件私有目录检测检测越狱软件检测系统目录是否变为链接动态库检测环境变量检测系统调用检测指令集调用检测其他方式检测 前言 在之前的文章中&#xff0c;已经带大家一起制作了一个屏蔽越狱检测的Tweak。本文就和大家一起学习整理一下iOS系统中有哪些越…...

场景驱动的 AI 体验设计:如何让智能 IDE 赋能遗留系统重写

作为 AutoDev 的核心开发&#xff0c;我们不仅在不断丰富 AutoDev 的功能以满足不同公司的定制需求&#xff0c;还在与各种团队进行持续交流。在处理遗留系统时&#xff0c;我们发现程序员们日常工作中需要面对大量使用过时技术、基础设施混乱的系统。 在这个背景下&#xff0c…...

【封装UI组件库系列】搭建项目及准备工作

封装UI组件库系列第一篇搭建项目 前言 &#x1f31f;搭建项目 创建工程 基本结构 1.创建8个组件展示页面 ​ 2.配置路由文件router/index.js 3.页面布局 &#x1f31f;总结 前言 在前端开发中&#xff0c;大家可能已经用过各种各样的UI组件库了&#xff0c;现在市面上热…...

C#使用DateTime获取日期和时间

在C#中&#xff0c;DateTime类是用来处理日期和时间的类。它具有许多属性和方法&#xff0c;用于操作和获取日期和时间的不同部分。以下是DateTime类的一些常用属性和方法。 属性&#xff1a; 1、DateTime.Now&#xff1a;获取当前日期和时间。 DateTime currentDateTime D…...

rook-ceph部署

rook是云原生存储编排器&#xff0c;本身不提供存储。 下载 git clone --single-branch --branch v1.11.4 https://github.com/rook/rook.git cd rook/deploy/examples 修改镜像地址images.txt operator方式部署rook kubectl apply -f crds.yaml -f common.yaml -f operator…...

JVM基础- 垃圾回收器

基本介绍 Java虚拟机&#xff08;JVM&#xff09;中的垃圾回收器是用来自动管理内存的关键组件。它负责识别并回收不再使用的内存&#xff0c;从而防止内存泄漏。不同的JVM实现提供了多种垃圾回收器&#xff0c;每种回收器都有其特定的使用场景和性能特点。以下是一些常见的JV…...

如何3分钟搭建免费H5页面编辑器:零代码制作专业移动端页面

如何3分钟搭建免费H5页面编辑器&#xff1a;零代码制作专业移动端页面 【免费下载链接】h5maker h5编辑器类似maka、易企秀 账号/密码&#xff1a;admin 项目地址: https://gitcode.com/gh_mirrors/h5/h5maker 还在为制作精美的H5页面而发愁吗&#xff1f;想要像专业设计…...

从零构建AI Agent框架:PicoClaw核心机制与模块化设计详解

1. 项目概述&#xff1a;从零构建一个AI Agent框架意味着什么&#xff1f;如果你对AI Agent&#xff08;智能体&#xff09;的概念感兴趣&#xff0c;尤其是看到LangChain、AutoGPT这些框架时&#xff0c;心里既兴奋又有点发怵——兴奋于它们展现的自动化潜力&#xff0c;发怵于…...

Tilde:让 AI 智能体在生产环境安全运行,具备可回滚、隔离、审计等特性

Tilde&#xff1a;让 AI 智能体在生产环境安全运行Tilde 致力于让 AI 智能体在生产环境中安全运行&#xff0c;它将每次智能体运行转化为可回滚的事务。来自 GitHub 的代码、S3 的数据以及 Google Drive 的文档&#xff0c;都能以单一版本化文件系统的形式呈现&#xff0c;每个…...

如何掌握LxRunOffline:解锁Windows子系统离线安装的终极秘籍

如何掌握LxRunOffline&#xff1a;解锁Windows子系统离线安装的终极秘籍 【免费下载链接】LxRunOffline A full-featured utility for managing Windows Subsystem for Linux (WSL) 项目地址: https://gitcode.com/gh_mirrors/lx/LxRunOffline 你是否曾因网络不稳定而无…...

TradingAgents 深度讲解:让 AI 智能体团队替你“开交易公司“——从原理到手把手部署

一个在 GitHub 收获 6.9 万星标、由 Tauric Research 团队开源的多智能体金融交易框架。它不是一个简单的"AI 选股工具"&#xff0c;而是用 LLM 模拟了一整个真实交易公司的决策流程。 项目地址&#xff1a;https://github.com/TauricResearch/TradingAgents 论文地址…...

如何通过多模态AI构建智能视频内容解析系统:video-analyzer技术深度解析

如何通过多模态AI构建智能视频内容解析系统&#xff1a;video-analyzer技术深度解析 【免费下载链接】video-analyzer Analyze videos using LLMs, Computer Vision and Automatic Speech Recognition 项目地址: https://gitcode.com/gh_mirrors/vi/video-analyzer 在视…...

AISMM成熟度模型落地失效?SITS2026用“能力-流程-角色-度量”四维校准法,3周止血、6周建模、12周固化!

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;SITS2026案例&#xff1a;AISMM驱动的组织变革 在SITS2026国际航天信息系统技术峰会中&#xff0c;欧洲航天局&#xff08;ESA&#xff09;与德国航空航天中心&#xff08;DLR&#xff09;联合实施的AI…...

手把手教你用devmem2工具直接读写PCIe设备配置空间(附ARM64/X86实战命令)

实战指南&#xff1a;用devmem2工具直接操作PCIe设备配置空间 在嵌入式开发和硬件验证领域&#xff0c;快速访问PCIe设备配置空间是一项基础但关键的技能。当我们需要验证新硬件是否被正确识别&#xff0c;或者调试驱动问题时&#xff0c;往往需要在编写完整内核驱动前先进行一…...

在 Node.js 服务中集成 Taotoken 实现稳定的 AI 功能后端

在 Node.js 服务中集成 Taotoken 实现稳定的 AI 功能后端 为前端应用提供 AI 问答能力是现代 Web 服务中常见的需求。当你在 Node.js 环境中构建这样的后端服务时&#xff0c;直接对接多个大模型厂商的 API 会面临密钥管理、模型切换和错误处理等工程挑战。Taotoken 作为一个提…...

D2RML终极指南:暗黑破坏神2重制版多开神器,告别繁琐登录!

D2RML终极指南&#xff1a;暗黑破坏神2重制版多开神器&#xff0c;告别繁琐登录&#xff01; 【免费下载链接】D2RML Diablo 2 Resurrected Multilauncher 项目地址: https://gitcode.com/gh_mirrors/d2/D2RML 还在为《暗黑破坏神2&#xff1a;重制版》多账户切换而烦恼…...