function isjsSfz(card) {
/*[001]------检查号码是否符合规范,包括长度,类型*/
/*身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位可能为数字或字符X*/
var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
if (reg.test(card) === false) {
return false;
}
/*[002]------前两位校验省份*/
var aIdentityCode_City = { //城市代码列表
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: "澳门", 91: "国外 "
};
var province = card.substr(0, 2);
if (aIdentityCode_City[province] == undefined) {
return false;
}
/*[003]------检查生日是否正确,15位以19年份来进行补齐*/
var len = card.length;
//身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字
if (len == '15') {
var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
var arr_data = card.match(re_fifteen); // 正则取号码内所含出年月日数据
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date('19' + year + '/' + month + '/' + day);
}
//身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X
if (len == '18') {
var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
var arr_data = card.match(re_eighteen); // 正则取号码内所含出年月日数据
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date(year + '/' + month + '/' + day);
}
var now = new Date();
var now_year = now.getFullYear();
//年月日是否合理
if (birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day) {
//判断年份的范围(0岁到150岁之间)
var time = now_year - year;
if (time >= 0 && time <= 150) {
return true;
}
return false;
}
/*[004]------校验位的检测*/
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
if (card.length == '15') {
var cardTemp = 0, i;
card = card.substr(0, 6) + '19' + card.substr(6, card.length - 6);
for (i = 0; i < 17; i++) {
cardTemp += card.substr(i, 1) * arrInt[i];
}
card += arrCh[cardTemp % 11];
}
var len = card.length;
if (len == '18') {
var cardTemp = 0, i, valnum;
for (i = 0; i < 17; i++) {
cardTemp += card.substr(i, 1) * arrInt[i];
}
valnum = arrCh[cardTemp % 11];
if (valnum == card.substr(17, 1)) {
return true;
}
return false;
}
return true;
}
相关推荐
东方财富API隐藏技巧:这样获取分时均价线数据更稳定(避坑指南)
本文深入解析东方财富API获取股票分时数据,特别是分时均价线的实战技巧与避坑指南。针对高频调用中常见的请求失败、数据错位及IP限制等问题,提供了从接口参数深层解析、稳健请求与错误处理机制,到系统优化与数据校验的全流程解决方案,帮助开发者构建稳定可靠的数据采集系统。
js身份证校验方法集合
校验方法一: /* * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:6位地区编码 * yymmdd: 出生年(两位年)月日,如:910215 * xx: 顺序编码,系统产生,无法确定 * p: 性别,奇数为男,偶数为女 * ...
STM32 WinUSB免驱实现:从DFU模式到高速通信的实战指南
本文详细介绍了STM32 WinUSB免驱实现方案,从DFU模式到高速通信的完整实战指南。通过修改设备描述符、添加BOS描述符和实现WCID描述符集,开发者可以轻松实现即插即用的USB设备,无需额外安装驱动。文章还提供了性能优化技巧和实际应用案例,帮助开发者快速部署高效稳定的USB通信方案。
js实现身份证精确校验
之前我们前端对身份证的校验,都是用的正则校验legalTex = /^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$/ 但是这个正则的含义 仅仅表示身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X这样的校验是不精确的,你随便改个数字,校验都可通过 如下是身份证的精确校验方法,百度搜索的话内容都差不多,我对其做了如下封装: 1.新建一个js文件,内容如下 co.
在MDK5.37版本中添加Complier Version 5( 解决Missing Compiler Version 5 )
本文章仅作为个人学习记录,方法也是从其他博主的博客中得到的,链接如下:二、Keil——Missing Compiler Version 5 和 core_cm3.c 问题解决 - YI颗白菜 - 博客园 (cnblogs.com) 问题描述 更新最新的keil版本(MDK5.37)后,在编译以前版本的工程文件时,发现出现了非常多的报错,在网上搜索之后发现原来时编译器版本不匹配的问题,即MDK5.37中使用的是Version 6版本的编译器,而缺少Version 5,对于以前编写的工
寻迹Arduino智能小车
Arduino巡线寻迹智能小车
js对身份证号码进行校验校验
js对身份证号码进行校验校验
51单片机智能小车
最近学校举办了一个智能小车比赛,比赛内容为用手机蓝牙控制小车拥有5个功能,分别是超声波舵机避障,测距(显示在LCD1602上), 红外跟随,循迹还有蓝牙控制小车前进后退左转又转以及停止。 文章目录 蓝牙控制所有功能 一、蓝牙控制前进后退左转右转停止 二、舵机超声波避障加测距 三、红外跟随 四、循迹 五、代码部分 六、完整代码 前言 基于51单片机的智能小车是比较基础的小车,很适合初学者学习 提示:以下是本篇文章正文内容,下面案例可供参考 一、整体思路 这款小...
Javascript,typeScript根据身份证提取省市县、生日、性别。脱敏、校验等工具类(vue3)
JavaScript、TypeScript处理身份证。 根据身份证提取省市县、生日、性别。脱敏、校验等。 要对身份证进行处理,前提就得先了解身份证含义。2013年1月1日起第一代居民身份证将停止使用,全面使用第二代居民身份证。所以就不考虑15位的情况。
基于C#开发ABB机器人上位机系统:从操作控制到数据交互的全方位实现
ABB工业机器人是世界领先的自动化设备之一,广泛应用于焊接、装配、搬运、喷涂、包装等多个行业。机器人控制器:用于控制机器人运动、路径规划、状态监控等。上位机系统:提供人机交互界面,允许操作员与机器人进行交互,实现实时控制、参数调整和数据分析。上位机系统通过与机器人控制器通信,采集机器人状态数据,发送控制指令,实现远程监控和控制操作。通过高效的操作界面和数据交互,可以大大提高机器人的工作效率和系统的可维护性。基于C#开发ABB机器人上位机系统,能够实现高效的机器人控制与实时数据交互。
【UVM实战】第七章:UVM中的寄存器模型(1)寄存器模型简介
寄存器模型简介~
测试工程师常用工具集 | 为高效测试而生
QAToolkit:测试工程师的全场景效率工具平台 QAToolkit是一款专为测试工程师设计的本地化工具平台,旨在解决测试工作中的高频痛点问题。该平台整合了六大核心能力域:数据生成、测试用例生成、接口研发辅助、自动化测试、性能测试和安全测试,覆盖从需求分析到上线的全流程测试场景。 平台亮点功能包括: 智能数据生成:支持结构化测试数据、边界值和异常值的快速生成 用例自动生成:通过AI模型将需求文档快速转化为测试用例 接口测试辅助:提供文档标准化、变更分析和Mock服务生成等功能 一站式自动化:从接口文档直接
材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集
钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。
身份证15位,18位规则校验(完整)
身份证校验(非常完整)身份证校验(18位,15位,2月) 身份证校验(18位,15位,2月) 以下是一个身份证校验的方法,直接在前端调用该方法即可,用不到该方法的,方法后面有正则表达式解释 export function validateIdNumber(rule, value, callback) { var reg = /^[1-9]\d{5}((\d{2}(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[13456789]|1[012])(0[1-
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
js身份证号校验方法(转载我的请注明哈哈)
const idCardNo = { citys: { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', 41: '河南', 42: '湖北', 43: '湖南', 44: '广东', 45: '广西', 46: '海南', 50: '重庆', 5.
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
js实现身份证严格校验包含正则表达式格式校验和计算加权因子校验码方法
身份证js校验方法
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
知识:js校验身份证号、根据身份证号获取出生日期、年龄、性别
总有一款你可能需要的公共方法~
如何用【javascript】实现身份证第18位(校验码)的计算方法
1、将前面的身份证号码17位数分别乘以不同的系数。 从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 2、将这17位数字和系数相乘的结果相加。 3、用加出来和除以11,看余数是多少? 4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。 其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。 5、通过上面得知如果
js校验身份证
js校验身份证 用js教你校验身份证 【身份证号码的规则】 6位地方代码+8位出生年月日数字+2位顺序码+1位性别代码+1位校验码 1)地方代码: 地方代码的前两位由特定的省份代码组成,至于原理呢…没有,我们并不需要纠结或者记住来源,只需要校验输入身份证号中的前两位是否在这些省份代码里即可; 地区代码为何只校验前两位,是因为三四位是市级代码、五六位是县级代码,这些代码数量众多,一一校验会很耗费性能,而在后面的校验码和顺序码的校验会涉及到...
15或18位身份证号码增强校验
15或18位身份证号码增强校验
身份证验证算法
现在的身份证一般有两种类型: 15位校验规则 6位地址编码+6位出生日期+3位顺序号 18位校验规则 6位地址编码+8位出生日期+3位顺序号+1位校验位 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。 出生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示...
身份证号校验(JavaScript)
身份证号校验。
js身份证校验方法
validIdNumber(code) { const city = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42.
js 实现身份证信息校验
用于身份证号码的比对校验。
前端必备!如何正确校验身份证号码?(新手向)
在开发用户注册、实名认证等功能时,我们经常需要校验身份证号码的合法性。由于身份证号码包含地区、出生日期、校验码等重要信息,错误的号码可能导致业务逻辑问题。
前端校验身份证号正则,校验规则省份、年月日,包含15位校验(完整)
下面展示一些 内联代码片。 //省份对应的代号 const city = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁',
2532



被折叠的 条评论
为什么被折叠?



