jQuery 身份证验证

基于Costas环的载波同步实现及Matlab仿真 其中,第一个相位环接收带噪声的待同步载波,并产生一个相位误差信号,这个误差信号再通过第二个相位环进行反馈控制,使得两个相位环的相位差保持为90度,最终输出同步载波信号。接下来,我们可以编写Costas环的仿真程序,并将上面生成的信号输入到Costas环中进行同步,最终输出同步后的载波信号。综上所述,本文介绍了如何使用Matlab实现基于Costas环的载波同步,并给出相应的源代码。上述代码中,我们初始化了Costas环的各个参数,然后通过循环迭代实现了相位估计和相位误差控制,最终输出了同步后的载波信号。 阅读详情
 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;
        }
2 君正底层API接口的封装1 君正的IPC芯片主要有T31、T40、T41等型号,每个型号的API接口大部分是相同的,但也存在一些不一致和差异化的地方。为了屏蔽不同芯片型号之间的差异,我们需要基于一个公共基类进行封装。在封装之前,我们需要定义自己的错误码和数据结构,用于屏蔽不同君正芯片的实现细节。为了确保整个IPC库使用统一的错误码,我们在HP_MPPErrorCode.h文件中专门定义了以下错误码。错误码囊括了参数错误、内存错误、溢出错误、不支持、密码错误、非法数据等各种异常情况。 阅读详情

相关推荐

LayaNative源码编译

修改好后的LayaNative2.0需要重新编译生成Android和iOS所需要的动态库文件。

末之 1358

jQuery验证身份证有效性

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

xiadiganhuo的博客 510

Benchmark系列——UnixBench测试项深度解析与性能优化指南

本文深度解析UnixBench基准测试套件的各项测试原理,包括Dhrystone、Whetstone、系统调用、进程管理、IPC及文件I/O等核心测试项。通过详细的测试项分析,指导用户解读测试报告,并提供针对性的内核参数调整、编译优化及系统配置实战指南,帮助用户精准定位并优化系统性能瓶颈。

weixin_29230901的博客 275

jquery验证身份证号码

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

LengYueQiuHan的博客 990

别再傻傻分不清了!STM32定时器里Prescaler和ClockDivision到底有啥区别?

本文深入解析STM32定时器中Prescaler和ClockDivision的区别与应用场景。Prescaler作为定时器的'心跳调节器',决定计数频率;而ClockDivision则是输入捕获的'抗噪滤镜',有效抑制高频噪声。通过实战案例和示波器实测数据,帮助开发者避免常见配置误区,提升嵌入式系统稳定性。

weixin_29193259的博客 319

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...

JustForYou的博客 2万+

jq身份证号验证(详细)

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

洋葱 5040

量化实战:如何用Barra多因子模型给你的投资组合做一次‘风险体检’?

本文详细介绍了如何利用Barra多因子模型对投资组合进行全面的风险体检,帮助投资者识别行业和风格因子的风险暴露。通过实战案例和Python代码示例,展示了数据采集、风险归因和组合优化的完整流程,提升投资组合的风险调整收益。

weixin_27215337的博客 323

Spring-Validation校验参数

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

牧风人的博客 2326

Python OpenCV基于颜色通道分离法去除图片中的红色印章

最近一段时间的工作都是研究如何去除图片中的红色印章,在网上查找了大量的大佬写过的方法,发现大多数是采取颜色通道分离法来做,并且效果还不错。站在前人的肩膀上,我又做了些许调整,谈不上是改进,但是能应对更对的情况总还是好的,特此记录。 拿发票做例子,印章相较于其它部分最大的不同就是印章是红色的,而其它部分不是(这是一句废话)。 那么第一步当然就是将红色分离出来,这一步可以采用Python第三方库OpenCV里的 cv2.split()方法,该方法是把RGB图像的三个通道拆分开来,得...

wl_Honest的博客 1万+

解决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.

qq_38127559的博客 2756

formValidator 验证是否为空,允许空格的方法

调用方法,举例: $("#ucompany").formValidator({onShowFixText:"请输入公司名称",onShow:"请输入公司名称",onCorrect:"输入正确"}).inputValidator({        min:1,empty:{leftEmpty:true,rightEmpty:true,emptyError:""},onError:"请输入公司名称

炉火纯青 6650

借助Gemini 3 Pro高效解决课题申报中的五大核心痛点,亲测有效经验分享

之前给大家分享过关于AI辅助课题申报的相关的内容,涵盖了申报书部分撰写技巧,但没针对性拆解各位同仁在实际申报时遇到的卡壳的地方。比如选题范围拿捏不准,定的太大,根本没法落地完成;定的太小,研究价值则体现不了;写综述时,容易单纯罗列文献,缺乏批判性视角,没办法自然融入自己的判断,找不到研究缺口;研究方法部分,可能担心方法设计不够严谨,别人难以复现.....针对这些申报中的高频痛点,接下来七哥会从五个核心要点出发,借助Gemini 3 Pro高效解决这些痛点。

智能AI让学术科研更容易 700

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) {

xiaozhen0610的博客 508

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jquery 验证身份证

jQuery.validator.addMethod("isIdCard",                         function(value, element) {                             return this.optional(element) || isIdCard(value);                         },

linwei_hello的专栏 3855

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

suyuwen1的专栏 1964

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

jQuery验证身份证号码

周末在家很宅,除了玩游戏就是吃好吃的,基本没怎么学习,哈哈,编辑代码之前,先附上一张今天中午做的美食图,自己买的菜和调料,不要太羡慕哈。 以下是一个大家都会的小知识点,jQuery验证身份证号码,老生常谈的问题了,不过对于记忆不好理解能力又不够的我来说,还是要记录一下下了。 <!DOCTYPE html> <...

祈澈菇凉 1717

jquery身份证验证

//验证身份证号码jQuery.validator.addMethod("idCardNo", function (value, element) {     //验证身份证号方法     var testIdCardNo = function (idcard) {        var Errors = new Array("验证通过!", "身份证号码位数不对!", "身份证号码出生日期超...

小强博客 202

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...

weixin_43272057的博客 190

Jquery使用正则验证身份证格式

Jquery使用正则验证身份证格式

weixin_44543121的博客 2533

jQuery验证手机号、身份证、姓名

jQuery验证手机号、身份证、姓名 验证个人信息 取票人信息--> +添加其他出行人信息--> 姓          名:

ly的博客 7047

jquery validate 身份证验证

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

呜哈哈的专栏 1335

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

baggio0111的专栏 7367

jQuery正则验证15/18身份证

最好的jQuery正则验证15/18身份证: 按照身份证的算法定制而成,精确度完美. 错一个数字或字母都通不过,无需通过数据处理来验证

Websites 5022

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

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

jzz111的专栏 9435
上一篇: 手机端根据手机宽度设定高度(宽高相等)
下一篇: jquery validate 身份证验证(可以为空)
han_hanker
博客等级 码龄13年 35粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值