js姓名和身份证验证
jsp:
<div class=""><p>姓名</p><input type="text" id="userName" name="userName" value="${user.userName}" /> </div> <div class=""><p>身份证号</p><input type="text" id="idCard" name="idCard" value="${user.idCard}"/>
</div>
<input type="button" name="submit" id="submit" value="提交信息" class="">
js:
$(document).ready(function(){$("#submit").click(function(){
var userName = $.trim($("#userName").val());//用户名 var cardId = $.trim($("#cardId").val());//身份证号码
if (userName == "" || userName == null) {alert('请输入姓名!');return;}if (!/^[\u4e00-\u9fa5]{2,4}$/.test(userName)) {alert('姓名格式错误!');$("#userName").val("");return;}if (cardId == "" || cardId == null) {alert('请输入身份证号!');return;}
// 身份证验证 function checkIdcard(num) {num = num.toUpperCase();// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {// alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。'); alert('请输入正确的身份证号码!');return false;}// 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 // 下面分别分析出生日期和校验位 var len, re;len = num.length;if (len == 15) {re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);var arrSplit = num.match(re);// 检查生日日期是否正确 var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);var bGoodDay;bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2]))&& ((dtmBirth.getMonth() + 1) == Number(arrSplit[3]))&& (dtmBirth.getDate() == Number(arrSplit[4]));if (!bGoodDay) {alert('输入的身份证号里出生日期不对!');return false;} else {// 将15位身份证转成18位 // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 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 nTemp = 0, i;num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);for (i = 0; i < 17; i++) {nTemp += num.substr(i, 1) * arrInt[i];}num += arrCh[nTemp % 11];return true;}}if (len == 18) {re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);var arrSplit = num.match(re);// 检查生日日期是否正确 var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);var bGoodDay;bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2]))&& ((dtmBirth.getMonth() + 1) == Number(arrSplit[3]))&& (dtmBirth.getDate() == Number(arrSplit[4]));if (!bGoodDay) {// alert('输入的身份证号里出生日期不对!'); alert('请输入正确的身份证号码!');return false;} else {// 检验18位身份证的校验码是否正确。 // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var valnum;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 nTemp = 0, i;for (i = 0; i < 17; i++) {nTemp += num.substr(i, 1) * arrInt[i];}valnum = arrCh[nTemp % 11];if (valnum != num.substr(17, 1)) {// alert('18位身份证的校验码不正确!应该为:' + valnum); alert('请输入正确的身份证号码!');return false;}return true;}}return false;}});
});
if (!checkIdcard(cardId)) { return; }
}
js姓名和身份证验证相关推荐
- JS最新的身份证验证代码
<script>function reproving() { //验证身份证var code=$("#cardId").val().toUpperCase();$(&q ...
- js实现完美身份证号有效性验证+身份证与姓名匹配
/* 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位 ...
- js验证真实姓名与身份证号,手机号
最近的项目中用的需要调用实名认证的接口,实名认证接口价格相比短信而言高了不是几分钱,所以说调用实名认证的条件就要严格把关,因此用到js验证真实姓名与js验证身份证号. 进入正题 1.js验证真实姓名 ...
- js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)...
js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...
- [前台]---js+jquery校验姓名,手机号,身份证号
记一次前台验证姓名,手机号,身份证号的代码,复制即用,前提是有引入jquery. var name = "姓名"if(!is_forbidName(name)){alert(&qu ...
- 银行卡四元素校验API 验证姓名手机号码身份证号码银行卡号是否一致
银行卡四元素校验API,检测输入的姓名.手机号码.身份证号码.银行卡号是否一致.通过https://www.juhe.cn/docs/api/id/213申请APPKEY 1.银行卡四元素检测 接口地 ...
- 姓名,身份证input验证过滤
在项目中总会出现一些身份校验的需求,今天跟大家说一下姓名和身份证的验证方法 姓名验证:需求,可输入英文.汉字 for(let i=0;i<e.length;i++){if(/^[a-zA-Z\u ...
- 银行卡三元素检测 根据姓名+身份证号+银行卡卡号验证信息是否匹配
银行卡检测api,根据姓名+身份证号+银行卡卡号验证信息是否匹配. 接口名称:银行卡检测api 接口平台:聚合数据 接口地址:http://v.juhe.cn/verifybankcard3/quer ...
- 如何验证手机三要素(手机号、姓名、身份证)
随着网络发展,人们越来越依赖手机进行重要信息的传输,但是一旦手机系统出现问题,敏感信息就有可能被窃取.因此,为了保护信息安全,人们开始开发三要素验证系统,以此来保护手机信息的安全. 手机三要素验证系统 ...
最新文章
- 高中计算机二级考试是考什么时候,浅谈有效实施高中计算机教学的方法_计算机二级考试时间...
- 计算机编辑功能在哪,注册表编辑器怎么打开-电脑的剪切板在哪里 电脑剪切板里面的内容怎么修改...
- php errorcode,php中pdo错误处理方法详解
- 程序员初试和复试_程序员因肌肉发达面试被质疑能力,网友:这做程序员有啥关系呢?...
- 多线程编程注意点(持续更新)
- MS17-010漏洞复现
- 【转】win32窗口的大小,居中,拖动
- C/C++混淆点-字符串指针
- Metadata Lock原理4
- 计算机图书管理系统测试用例,图书管理系统测试用例设计.doc
- Moveit更换默认规划器KDL为TraceIk
- 简单的网络打印的配置与管理(IP地址...)
- 舔一舔 · 肌霸Kafka
- 单例模式java概括_单例模式中总有几个歪门邪道的问题要知道!
- netty 服务端主动向客户端发信息
- 什么是马甲包?有什么作用?
- thinkphp5使用腾讯云发送短信验证码服务
- linux下WMB通过ODBC连接DB2数据库
- 【毕业设计】深度学习安检管制物品识别检测系统 - python opencv YOLO
- 计算机 五大算法类型,计算机算法设计五大常用算法的分析及实例.docx