function testId(value) {
var vcity = {
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: "国外"
};
// 判断是否为空
isEmpty = function (card) {
if (/^\s*$/.test(card) === true) {
return true;
}
}
//检查号码是否符合规范,包括长度,类型
isCardNo = function (card) {
if (isEmpty(card)) {
return true;
}
//这个代码表示身份证可以为空
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
if (reg.test(card) === false) {
return false;
}
return true;
};
//取身份证前两位,校验省份
checkProvince = function (card) {
if (isEmpty(card)) {
return true;
}
var province = card.substr(0, 2);
if (vcity[province] == undefined) {
return false;
}
return true;
};
//检查生日是否正确
checkBirthday = function (card) {
if (isEmpty(card)) {
return true;
}
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);
return verifyBirthday('19' + year, month, day, birthday);
}
//身份证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);
return verifyBirthday(year, month, day, birthday);
}
return false;
};
//校验日期
verifyBirthday = function (year, month, day, birthday) {
var now = new Date();
var now_year = now.getFullYear();
//年月日是否合理
if (birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day) {
//判断年份的范围(3岁到100岁之间)
var time = now_year - year;
if (time >= 3 && time <= 100) {
return true;
}
return false;
}
return false;
};
//校验位的检测
checkParity = function (card) {
if (isEmpty(card)) {
return true;
}
//15位转18位
card = changeFivteenToEighteen(card);
var len = card.length;
if (len == '18') {
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');
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 false;
};
//15位转18位身份证号
changeFivteenToEighteen = function (card) {
if (isEmpty(card)) {
return true;
}
if (card.length == '15') {
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');
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];
return card;
}
return card;
};
//checkCard = function () {
var card = value;
//校验长度,类型
if (isCardNo(card) === false) {
//alert('您输入的身份证号码不正确,请重新输入');
//document.getElementById('card_no').focus;
return false;
}
//检查省份
if (checkProvince(card) === false) {
return false;
}
//校验生日
if (checkBirthday(card) === false) {
return false;
}
//检验位的检测
if (checkParity(card) === false) {
return false;
}
return true;
}
相关推荐
LayaNative源码编译
修改好后的LayaNative2.0需要重新编译生成Android和iOS所需要的动态库文件。
jQuery验证身份证有效性
【代码】jQuery验证身份证有效性。
Benchmark系列——UnixBench测试项深度解析与性能优化指南
本文深度解析UnixBench基准测试套件的各项测试原理,包括Dhrystone、Whetstone、系统调用、进程管理、IPC及文件I/O等核心测试项。通过详细的测试项分析,指导用户解读测试报告,并提供针对性的内核参数调整、编译优化及系统配置实战指南,帮助用户精准定位并优化系统性能瓶颈。
jquery验证身份证号码
//个人身份证 function checkEnergyCard(){ var allowancePersonValue=$("#allowancePersonID").val(); //是否为空 if(allowancePersonValue==""){ $("#allowancePersonIDTips").addClass("aTip"); $("#allowanc
别再傻傻分不清了!STM32定时器里Prescaler和ClockDivision到底有啥区别?
本文深入解析STM32定时器中Prescaler和ClockDivision的区别与应用场景。Prescaler作为定时器的'心跳调节器',决定计数频率;而ClockDivision则是输入捕获的'抗噪滤镜',有效抑制高频噪声。通过实战案例和示波器实测数据,帮助开发者避免常见配置误区,提升嵌入式系统稳定性。
OpenPose 论文理解
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation paper: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields link: OpenPose paper...
jq身份证号验证(详细)
//检查确认身份证是否合法(新)function checkCardNumber(text, callback){ checkAge = true; var number = text; if (number == null || number == "") { return callback("请输入真实有效的身份证号"); // eleCtrlShow($('#realNum'),'.co...
量化实战:如何用Barra多因子模型给你的投资组合做一次‘风险体检’?
本文详细介绍了如何利用Barra多因子模型对投资组合进行全面的风险体检,帮助投资者识别行业和风格因子的风险暴露。通过实战案例和Python代码示例,展示了数据采集、风险归因和组合优化的完整流程,提升投资组合的风险调整收益。
Spring-Validation校验参数
Spring-Validation校验参数 全方面使用参数校验工具 //被注释的元素,值必须是一个字符串,不能为null,且调用trim()后,长度必须大于0 @NotBlank(message="") //被注释的元素,值不能为null,但可以为"空",用于基本数据类型的非空校验上,而且被其标注的字段可以使用@size、@Max、@Min等对字段数值进行大小的控制 @NotNull(message="") //被注释的的元素,值不能为null,且长度必须大于0,一般用在集合类上面 @...
Python OpenCV基于颜色通道分离法去除图片中的红色印章
最近一段时间的工作都是研究如何去除图片中的红色印章,在网上查找了大量的大佬写过的方法,发现大多数是采取颜色通道分离法来做,并且效果还不错。站在前人的肩膀上,我又做了些许调整,谈不上是改进,但是能应对更对的情况总还是好的,特此记录。 拿发票做例子,印章相较于其它部分最大的不同就是印章是红色的,而其它部分不是(这是一句废话)。 那么第一步当然就是将红色分离出来,这一步可以采用Python第三方库OpenCV里的 cv2.split()方法,该方法是把RGB图像的三个通道拆分开来,得...
解决com.kingbase8.util.KSQLException: This _connection has been closed.
一个消息管理系统,系统采用kingbase8数据库,数据库采用单体模式,后台应用也采用springboot单体模式。系统正式上线后,出现几个JDBC响应的异常信息: com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend. java.net.SocketTimeoutException: Read timed out.
formValidator 验证是否为空,允许空格的方法
调用方法,举例: $("#ucompany").formValidator({onShowFixText:"请输入公司名称",onShow:"请输入公司名称",onCorrect:"输入正确"}).inputValidator({ min:1,empty:{leftEmpty:true,rightEmpty:true,emptyError:""},onError:"请输入公司名称
借助Gemini 3 Pro高效解决课题申报中的五大核心痛点,亲测有效经验分享
之前给大家分享过关于AI辅助课题申报的相关的内容,涵盖了申报书部分撰写技巧,但没针对性拆解各位同仁在实际申报时遇到的卡壳的地方。比如选题范围拿捏不准,定的太大,根本没法落地完成;定的太小,研究价值则体现不了;写综述时,容易单纯罗列文献,缺乏批判性视角,没办法自然融入自己的判断,找不到研究缺口;研究方法部分,可能担心方法设计不够严谨,别人难以复现.....针对这些申报中的高频痛点,接下来七哥会从五个核心要点出发,借助Gemini 3 Pro高效解决这些痛点。
jQuery身份证验证插件
jQuery身份证验证插件 /*! * jQuery isIDCard Plugin v1.0.0 * http://www.cnblogs.com/cssfirefly/p/5629561.html * * Copyright 2016 link * Released under the MIT license */ (function(factory) { if (typeof define === 'function' && define.amd) {
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
jquery 验证身份证
jQuery.validator.addMethod("isIdCard", function(value, element) { return this.optional(element) || isIdCard(value); },
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
jquery validate日期与身份证验证实例
jquery validate日期与身份证验证实例 下面是validate的validate.js jQuery.extend(jQuery.validator.messages, { required: “必填”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, date: “请输入合法的日期”, dat
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
jQuery验证身份证号码
周末在家很宅,除了玩游戏就是吃好吃的,基本没怎么学习,哈哈,编辑代码之前,先附上一张今天中午做的美食图,自己买的菜和调料,不要太羡慕哈。 以下是一个大家都会的小知识点,jQuery验证身份证号码,老生常谈的问题了,不过对于记忆不好理解能力又不够的我来说,还是要记录一下下了。 <!DOCTYPE html> <...
jquery身份证验证
//验证身份证号码jQuery.validator.addMethod("idCardNo", function (value, element) { //验证身份证号方法 var testIdCardNo = function (idcard) { var Errors = new Array("验证通过!", "身份证号码位数不对!", "身份证号码出生日期超...
jquery验证二代身份证
$('#idcardno').blur(function () { var idcard = $(this).val(); var reg = /^\d{17}\d|x$/; var is_ok = reg.test(idcard); var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9...
Jquery使用正则验证身份证格式
Jquery使用正则验证身份证格式
jQuery验证手机号、身份证、姓名
jQuery验证手机号、身份证、姓名 验证个人信息 取票人信息--> +添加其他出行人信息--> 姓 名:
jquery validate 身份证验证
一、js文件中先写入的文件 $(document).ready(function () { jQuery.validator.addMethod("isIdCardNo", function (value, element) { return this.optional(element) || isIdCardNo(value); }, "请正确输入您的身份
jquery validation验证身份证号、护照、电话号码、email
转载:http://blog.sina.com.cn/s/blog_6915bcb10100qzka.html validata.htm http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml"> 无标题文档 em.success
jQuery正则验证15/18身份证
最好的jQuery正则验证15/18身份证: 按照身份证的算法定制而成,精确度完美. 错一个数字或字母都通不过,无需通过数据处理来验证
jquery.validate----身份证号码验证
一、js文件中先写入的文件 $(document).ready(function () { jQuery.validator.addMethod("isIdCardNo", function (value, element){ return this.optional(element) || isIdCardNo(value); },"请正确输入您的身份证号码"
1358



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



