博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery检验身份证规则
阅读量:6332 次
发布时间:2019-06-22

本文共 2056 字,大约阅读时间需要 6 分钟。

  hot3.png

"idcard":function(gets,obj,curform,datatype){				/*					该方法由网友提供;					对身份证进行严格验证;				*/							var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子;				var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值,10代表X;							if (gets.length == 15) {   					return isValidityBrithBy15IdCard(gets);   				}else if (gets.length == 18){   					var a_idCard = gets.split("");// 得到身份证数组   					if (isValidityBrithBy18IdCard(gets)&&isTrueValidateCodeBy18IdCard(a_idCard)) {   						return true;   					}   					return false;				}				return false;								function isTrueValidateCodeBy18IdCard(a_idCard) {   					var sum = 0; // 声明加权求和变量   					if (a_idCard[17].toLowerCase() == 'x') {   						a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作   					}   					for ( var i = 0; i < 17; i++) {   						sum += Wi[i] * a_idCard[i];// 加权求和   					}   					valCodePosition = sum % 11;// 得到验证码所位置   					if (a_idCard[17] == ValideCode[valCodePosition]) {   						return true;   					}					return false;   				}								function isValidityBrithBy18IdCard(idCard18){   					var year = idCard18.substring(6,10);   					var month = idCard18.substring(10,12);   					var day = idCard18.substring(12,14);   					var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));   					// 这里用getFullYear()获取年份,避免千年虫问题   					if(temp_date.getFullYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){   						return false;   					}					return true;   				}								function isValidityBrithBy15IdCard(idCard15){   					var year =  idCard15.substring(6,8);   					var month = idCard15.substring(8,10);   					var day = idCard15.substring(10,12);					var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));   					// 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法   					if(temp_date.getYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){   						return false;   					}					return true;				}							}

 

转载于:https://my.oschina.net/itlzm/blog/1612919

你可能感兴趣的文章
如何从代码层防御10大安全威胁中的 Xpath Injection?
查看>>
伪元素(before after)的正确理解方式
查看>>
组播数据发送和接收
查看>>
学做iOS开发:缘起
查看>>
Xcode6中如何去掉默认的Main.storyboard
查看>>
Learning PHP —— 设计模式 | Chap2:设计模式与UML
查看>>
iView 3.3.2 发布,基于 Vue.js 的企业级 UI 组件库
查看>>
数据齿轮(DataGear)数据库管理系统 v1.1.1 发布
查看>>
JFinal-layui v1.1 更新,极速开发企业应用系统
查看>>
jQ基础篇--jQuery对象与dom对象的区别与相互转换
查看>>
谷歌招聘 Node 工程师,新系统 Fuchsia 有望支持 JS
查看>>
几种 Docker 监控工具对比
查看>>
中国发布自主开发的域名系统基础软件 “红枫”
查看>>
Didn't find class "android.support.v4.animation.AnimatorCompatHelpe...
查看>>
中国宠物用品品牌“Touchdog它它”完成数千万元Pre-A 轮融资 ...
查看>>
android实现弹出式对话框方法分析
查看>>
阿里云镜像市场mysql默认密码如何修改 图文教程 ...
查看>>
论文解读 | 数十亿商品中,长尾和新品怎么找到新主人? ...
查看>>
使用pm2方便开启node集群模式
查看>>
浅谈MySQL原理与优化(一)—— 历史与体系结构 ...
查看>>