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;
});
使用MATLAB/Simulink对一个简单的智能家居温湿度监测与控制系统进行建模和仿真 目录手把手教你学Simulink——基于Simulink的智能家居温湿度监测与控制仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:构建传感器模块步骤3:添加控制器步骤4:构建执行器模块步骤5:连接各部分步骤6:设置仿真参数步骤7:添加观测器步骤8:运行仿真并分析结果四、总结 智能家居系统中的温湿度监测与控制系统是一个典型的物联网(IoT)应用场景,它通过传感器收集环境数据,并根据预设条件自动调节室内温度和湿度以提高居住舒适度。本指南将介绍如何使用MATLAB/S 阅读详情

相关推荐

HFSS实战(三)——过孔via TDR仿真

在上一讲中,主要是通过观察S参数确定via的优化是否达到目标。但S参数只能看到一个整体的结果,并不知道via真实的阻抗是多少?想要单独确定via的阻抗,最好还是通过TDR的仿真。

luohuo9844的博客 1万+

jQuery 身份证验证

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

hanker的博客 3398

瑞芯微RK3576开发实战:固件烧录与内核启动的典型问题解析

本文详细解析了瑞芯微RK3576开发板在固件烧录与内核启动过程中遇到的典型问题及解决方案。从开发工具版本检查、DDR配置调整到内核启动异常的设备树适配和电源管理问题,提供了系统性的调试方法和实用技巧,帮助开发者高效解决RK3576开发中的常见挑战。

weixin_33700350的博客 454

jQuery验证身份证有效性

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

xiadiganhuo的博客 510

Ardupilot姿态控制详解(完结篇)

本文主要是对过去写的一些APM中姿态控制流程及函数博文的汇总。 按照之前写的博文以及个人认为的学习顺序,给出APM姿态控制器的学习顺序如下: APM姿态旋转理论基础 Ardupilot姿态控制器 PID控制流程(整定后的P控制器) 详解APM的开方控制器sqrt_controller Ardupilot前馈及平滑函数input_euler_angle_roll_pitch_yaw解析 Ardupilot倾转分离函数thrust_heading_rotation_angles Ardupilot四元数姿态控制

moumde的博客 7024

SRS流媒体服务器在Windows下的安装

在之前的流媒体开发中(视频会议),我基本上使用nginx加模块的方式进行学习、测试,正式开发的时候改为服务器端用EasyDarwin,客户端用rtsp-simple-server(这些流媒体服务器的用法见我以前的博文),这样可以充分利用客户端的资源,降低服务器端的压力。在流媒体协议方案,我选择相对较快的rtsp。这个协议优点是支持UDP协议,优化好的环境下可以实现3秒以下的延迟,基本满足甲方要求,缺点就是不支持网页播放。

dgnankai的专栏 2023

jquery验证身份证号码

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

LengYueQiuHan的博客 990

基于STM32设计的数字电子秤

当前项目是采用采用STM32+称重模块+OLED实现了简单的电子秤项目,称重模块上采用24位的ADC芯片,精度较高。实现了称重,校准、去皮等功能。

1万+

jq身份证号验证(详细)

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

洋葱 5040

发那科机器人karel程序

备份和查看发那科机器人中的 Karel 程序的过程主要包括从示教器中备份程序,并通过 RoboGuide 等仿真软件查看和运行程序。步骤相对简单,但需要确保你的设备和软件已经设置好,可以通过 FTP 或直接从示教器的外部存储设备进行操作。如果你在操作过程中遇到问题,建议查阅相关的用户手册或联系发那科的技术支持,确保设备设置正确。如果你有更具体的问题或需要进一步帮助,欢迎继续提问!希望如上措施及解决方案能够帮到有需要的你。

**My Coding Family** 1600

uniapp [全端兼容] - 实现人脸识别对比+人脸相似度,从相册选择或拍照上传两张图片进行人脸对比得到人脸相似度及判断是否是同一个人,人脸活体检测及对比(免费纯前端方案+调用第三方API接口方案)

uniApp人脸对比 人脸对比识别 人脸对比相似度,uniapp实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,uniapp实现人脸识别对比,计算两张人脸的相似度,从而判断是否同一个人,并给出相似度评分。uniapp H5网页如何实现人脸相似度比对,uniapp纯前端怎么对比两张图片的相似度,计算两幅图像的相似度,图像相似度对比方法,UNI-APP人脸相似度对比,快速识别两张照片的相似程度(用百分比)图片相似度对比在线测试,图片相似度对比,uniapp微信小程序人脸相似度对比分析,uniapp

🏆 前端领域优质创作者 5020

Spring-Validation校验参数

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

牧风人的博客 2326

Linux:安装Debian最新10.x操作系统(超详细)

安装Debian最新10.x操作系统安装Debian最新10.x操作系统1.下载Debian镜像2. 镜像安装引导启动页面,选择图形化安装:选择语言、时区,选中后点击continue:选择键盘模式:配置Hostname主机名,设置Root密码创建普通用户名和密码,进入磁盘分区步骤,选择“所有文件放在同一个分区”确认分区信息磁盘配置完,进入软件安装模块:选择源:进入软件包配置,等待配置结束根据需要选择软件包安装3. 安装完成重启后登录使用 安装Debian最新10.x操作系统 1.下载Debian镜像 下载D

HowieXue 薛永浩的博客 3万+

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

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

suyuwen1的专栏 1964

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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

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

weixin_42792301的博客 1455

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

jzz111的专栏 9435

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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、付费专栏及课程。

余额充值