jquery validate 身份证验证(可以为空)

JQuery validate验证规则 //定义中文消息 var cnmsg = {undefined required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, date: “请输入合法的日期”, dateISO: “请输入合法的日期 (ISO).”, number: “请输入合法的数字”, digits: “只能输入整数”, creditcard: “请输入合法的信用卡号”, equalTo: “请再次输入相同的值”, accept: “请输入拥有合法 阅读详情
jQuery.validator.addMethod('idCard2', function (value, element) {
    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;
});
Llama模型结构拆解:为什么MLP模块要这样设计?从参数配置到计算流程全解析 本文深入解析了Llama模型MLP模块的设计精髓。通过拆解其三线性层结构、门控机制与SwiGLU激活函数,揭示了并行计算如何提升效率,并详细阐述了intermediate_size参数配置背后的经验权衡与计算考量,帮助读者透彻理解这一核心组件的设计逻辑与工程实现。 阅读详情

相关推荐

如何在软件复位后保留指定RAM区域的数据

本文主要介绍S32K144的RAM retention功能

北极熊的脖子(16605192620@163.com) 1万+

jQuery 身份证验证

function testId(value) { var vcity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏",

hanker的博客 3398

【gateway nc adapter虚拟网卡 win11 联想】问题的解决

由于需要登录公司内网,于是启用奇安信VPN。但启动后报出网关未连接的问题,于是我检查了我的网络适配器,并尝试解决,以下给出几种我实践过程中的行动,并附带最后成功的解决方法。

m0_73602417的博客 6550

jQuery验证身份证有效性

【代码】jQuery验证身份证有效性。

xiadiganhuo的博客 510

LVDS系列23:Xilinx Ultrascale系ISERDESE3原语(一)

当FIFO_RD_CLK与CLKDIV对齐时,也就是Latency With Late FIFO Empty情况时,延迟比前一种情况长一个FIFO_RD_CLK时钟周期,也就是在FIFO_RD_CLK上升沿后一点,CLKDIV才成功驱动完FIFO_EMPTY的变化,于是读侧要得到FIFO_EMPTY为0的情况则要等到下一个FIFO_RD_CLK的上升沿采集时;IS_CLK_INVERTED、IS_CLK_B_INVERTED设置CLK和CLK_B是否反转,一般情况下设置0;

weixin_38828382的博客 900

手把手教你用DCA1000和mmWave Studio 2.0采集AWR1843雷达数据(附驱动安装与常见报错排查)

本文详细介绍了使用DCA1000和mmWave Studio 2.0采集AWR1843毫米波雷达数据的全流程指南,包括硬件连接、驱动安装、软件配置及常见报错排查。通过实战经验分享,帮助开发者快速掌握数据采集技巧,优化雷达参数配置,提升数据质量与采集效率。

weixin_30070339的博客 332

jquery验证身份证号码

//个人身份证 function checkEnergyCard(){  var allowancePersonValue=$("#allowancePersonID").val();  //是否为空  if(allowancePersonValue==""){   $("#allowancePersonIDTips").addClass("aTip");   $("#allowanc

LengYueQiuHan的博客 990

别再让步进电机‘发烧’了!用FOC闭环驱动实现精准力矩控制(基于P0斩波恒流版)

本文详细介绍了如何利用FOC闭环驱动技术(基于P0斩波恒流版)解决步进电机过热和力矩控制不精准的问题。通过对比传统开环控制的缺陷,展示了FOC在降低温度、提升精度和能效方面的显著优势,并提供了硬件配置、软件实现及性能优化的完整方案。

weixin_30872157的博客 567

jq身份证号验证(详细)

//检查确认身份证是否合法(新)function checkCardNumber(text, callback){ checkAge = true; var number = text; if (number == null || number == "") { return callback("请输入真实有效的身份证号"); // eleCtrlShow($('#realNum'),'.co...

洋葱 5040

J-LINK下载程序出现No Cortex-M Device found in JTAG chain…问题,最全7种解决方法

J-Link下载程序出现No Corect 等的问题的7种方法 后来编辑JLinkSettings.ini文件,找到"Device"项,将其更改Device="Cortex-M0+"

cjmsea的博客 5613

使用lighttpd和开发板进行交互

本文介绍了如何在嵌入式开发板上使用Lighttpd Web服务器实现硬件交互功能。主要内容包括:Lighttpd通过CGI程序间接控制硬件的基本原理;lighttpd.conf配置文件的详细解析;开发板文件目录结构设计;用C语言编写控制GPIO的CGI程序示例;网页调用CGI实现按钮触发控制的HTML代码;常见问题调试建议。最后通过效果图展示了网页按钮点击后成功控制LED灯的实际效果,验证了Lighttpd+CGI方案在嵌入式设备Web控制中的可行性。

m0_49476241的博客 1424

Spring-Validation校验参数

Spring-Validation校验参数 全方面使用参数校验工具 //被注释的元素,值必须是一个字符串,不能为null,且调用trim()后,长度必须大于0 @NotBlank(message="") //被注释的元素,值不能为null,但可以为"空",用于基本数据类型的非空校验上,而且被其标注的字段可以使用@size、@Max、@Min等对字段数值进行大小的控制 @NotNull(message="") //被注释的的元素,值不能为null,且长度必须大于0,一般用在集合类上面 @...

牧风人的博客 2326

【YOLOv11多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案

在网络输入阶段将多模态数据直接合并,形成统一的特征表示。

Limiiiing的博客 1967

jquery validate日期与身份证验证实例

jquery validate日期与身份证验证实例 下面是validate的validate.js jQuery.extend(jQuery.validator.messages, { required: “必填”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, date: “请输入合法的日期”, dat

suyuwen1的专栏 1964

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

通过jquery-validate校验身份证号有效性

页面载入时,加入拓展 $(function () { jQuery.validator.addMethod("isIdCardNo", function (value, element){ return this.optional(element) || isIdCardNo(value); },"请正确输入您的身份证号码"); }); 方法主体 function...

weixin_42792301的博客 1455

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jquery.validate----身份证号码验证

一、js文件中先写入的文件 $(document).ready(function () {    jQuery.validator.addMethod("isIdCardNo", function (value, element){        return this.optional(element) || isIdCardNo(value);     },"请正确输入您的身份证号码"

jzz111的专栏 9435

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jquery.validate 自定义验证方法

jquery.validate 自定义验证方法   2011-10-28 10:47:49|  分类: JQuery及插件 |  标签:jquery   |字号 订阅 Java代码 $(document).ready( function() { /** * 身份证号码验证 * */ function isIdCardNo(num)

zl386119974的专栏 4113

jQuery.validate动态显示提示信息+自定义校验验证的触发验证方式修改

最近在公司写jsp页面的时候,填写表单需要验证。并且是有两种情况,先选下拉框,如果选的是身份证号就需要验证表单里的输入的是否是合法的身份证号。如果选的是手机号就需要验证表单里输入的是否是合法的手机号。并且如果不合法还需给出不同的提示。 在网上找到了添加自定义验证方法的函数(jQuery.validator.addMethod),但是提示信息是固定的。不过最好还是找到了一个亲测比较好用的方法。 ...

Quan_qqqq的博客 3027

jQuery Validate 扩展验证方法

/***************************************************************** jQuery Validate扩展验证方法 *****************************************************************/ $(function(){ /*********** 整数 **************/ .

猎人在吃肉 633

Validate 表单验证用法说明

前言 Validate 是 jQuery 的一个子插件, 该插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足用户的各种验证需求。该插件捆绑了一套有用的验证方法,同时提供了一个用来编写用户自定义方法的 API。默认使用英语作为错误信息,且已翻译成其他 37 种语言,支持中文错误提示。 官网地址:https://jqueryvalidation.org/ 菜鸟教程地址:http://www.360doc.com/content/17/0726/06/2708086

大话家的博客 1万+

jQuery验证插件 Validate校验及自定义验证规则

1. validate的使用步骤 1.引入jquery.min.js 2.引入 jquery.validate.js 下载地址:https://www.jq22.com/jquery-info122 3.页面加载后对表单进行验证 $("#表单id名").validate({}) 4.在validate中的rules中编写验证规则(格式如下) 字段的name属性:“校验器”(tisps:一个输入框只有一个校验器的时候使用) 字段的name属性:{校验器:值,校验器:值}(tips:输入框需要有多个校验

o_b_j_e_c_t的博客 2097

扩展jquery.validate自定义验证,自定义提示,本地化

Index $(document).ready(function () { $("#myform").validate({ rules: { username: { required: true, minlength: 2 },

深南大道 1万+

jquery-validate验证身份证

$(function() { jQuery.validator.addMethod("isIdCardNo", function (value, element){ return this.optional(element) || isIdCardNo(value); },"请正确输入您的身份证号码"); function isIdCardNo(num) { var fa

huangbaokang的博客 1310

[JQuery] - 用validate插件校验表单

一.功能效果 二.部分特殊规则 2.1 错误信息位置更改 在表单某选项中增加代码 <label class="error" for="表单中选项的name"></label> 例如 : 性别必选 <td> <input type="radio" id="male" value="m" name="sex"/>男 <input type=...

零点笔记 641

jquery-validate自定义表单验证

jquery-validate自定义表单验证 自定义方法中有三个参数: 第一个是规则的名字,类似required规则名字。 第二个是改规则的实现部分,需要验证哪些条件在这里写验证方法,当return返回true时代表验证条件符合不触发。 第三个是提示消息。 其中this.optional(element)表示表单控件的值不为空时才会触发。空字符串也会触发。` 部分自定义验证 //...

hjwy2436的博客 310

validate校验及自定义验证规则

1.默认校验 (1)、required:true 必输字段 (2)、remote:"remote-valid.jsp" 使用ajax方法调用remote-valid.jsp验证输入值 (3)、email:true 必须输入正确格式的电子邮件 (4)、url:true 必须输入正确格式的网址 ...

云下的你 1万+
上一篇: jQuery 身份证验证
下一篇: jquery 复选框 反选
han_hanker
博客等级 码龄13年 35粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值