SpringMVC关于Validform实时校验身份证的作为账户的问题

2023-11-12

此地址上有相关案例:http://validform.rjboy.cn/看不懂别怪我
前端代码,例如:

 <div class="f-fl item-ifo item-sfz">
                            <input type="text" name="username" id="adminNo" value="${requestScope.userInfo.userName}" class="txt03 f-r3 required" datatype="idcard" nullmsg="请您填写身份证号码!" errormsg="您填写的身份证号码不对!" />
                        </div>

关于身份证实时校验问题,例如:

$(function() {
    var demo = $("#registerForm").Validform({
        tiptype: 3,
        label: "td",
        ignoreHidden: true,
        showAllError: true,
        ajaxPost: true,
        datatype: {
            "zh1-6": /^[\u4E00-\u9FA5\uf900-\ufa2d]{1,6}$/, //中文
            "ucsc": /[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/,    //统一社会信用代码
            "sn":  /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, //金额,>=0保留两位小数
            "zyw":/^[\u0391-\uFFE5A-Za-z]{2,}$/,    //至少2位中文或者字母
            "pwd":/^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{6,19}$/,//必须有数字和字母组合6-20位
            "an":/^[0-9a-zA-Z]+$/,      //字母和数字组合
            "telMove":/^(0|86|17951)?(13[0-9]|15[012356789]|16[6]|19[89]]|17[01345678]|18[0-9]|14[579])[0-9]{8}$/,
            "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;
                var result = '身份证号已存在';
                var username=$("#adminNo").val();
                var code = '' //定义空变量
                var urlUser ="${pageContext.request.contextPath}/ouser/ocheckregisterusername.html?username="+ username; //通过ajax请求地址
                $.ajax({
                    async:false,//
                    type:"get",
                    url:urlUser,
                    success:function (data) {
                            code = data.error //接口成功之后返回来的值
                    },
                });
                if(code == result){//判断如果code 等于result 
                    return result
                }else{
                    return true
                }
                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;
                }

            },

        },
        callback:function(form){
            //在验证成功后,表单提交前执行的函数,curform参数是当前表单对象。
            //这里明确return false的话表单将不会提交;
            registerSubmit();
            $("#Validform_msg").css("display","none")
            return false
        },
    });

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMVC关于Validform实时校验身份证的作为账户的问题 的相关文章

  • 流媒体服务器 客户端播放器方案推荐

    https github com jacke121 stream rtsp 使用说明 貌似把rtsp转为webrtc 但是没有把图片编码为webrtc Example config json server httpPort 8000 htt
  • 解决IDEA插件Plugins加载问题

    解决IDEA插件Plugins加载问题 1 找到plugins 2 添加镜像https plugins jetbrains com plugins alpha 5047
  • 风险平价策略python代码_风险平价组合(risk parity)理论与实践

    本文介绍了风险平价组合的理论与实践 后续文章将对risk parity组合进行更深入探讨以及引入预期收益后的资产配置实战策略 前言 资产配置是个很广泛的话题 在投资中是一个非常重要的话题 从使用场景分类上来看 资产配置可以是宏观的资产配置
  • javascript高级 --- 惰性函数

    一 介绍 惰性函数表示在函数执行的过程中 函数会在首次被成功调用的时候覆盖当前函数 成功后的逻辑不会被执行 二 案例 因为浏览器行为之间的差异 我们在处理一些差异的同时 必须考虑其兼容性问题 例如 addEventListener remo
  • 微服务swagger公共模块(SpringBoot 2.7.7 Swagger 3.0.0)

    一 SpringBoot和Swagger版本 SpringBoot
  • 电脑安装多个版本Java如何进行快速切换

    安装好Java之后 首先查看环境变量 在Path栏中寻找地址值为 C盘 java bin 之类的值 删除 然后找到该目录 删除具有java exe javaw exe javaws exe的文件夹 我们可以运用批处理脚本 进行快速的Java
  • javaweb——jsp(学习总结,javaweb必备技能)

    javaweb jsp 1 jsp简介 2 jsp的生命周期 3 jsp的三种语法 3 1 头部的page 指令 3 1 1 page指令的相关属性 3 2 表达式脚本 3 3 jsp注释 4 jsp的九大隐含对象 内置对象 5 jsp的四
  • mysql迁移kingbase缺少is_ipv4函数自定义实现

    mysql迁移kingbase缺少is ipv4函数自定义实现 TOC mysql is ipv4函数 is ipv4函数判断传入的字符串是否是一个ipv4地址 IS IPV4 expr Returns 1 if the argument
  • Elasticsearch学习

    0 带着问题上路 ES是如何产生的 1 思考 大规模数据如何检索 如 当系统数据量上了10亿 100亿条的时候 我们在做系统架构的时候通常会从以下角度去考虑问题 1 用什么数据库好 mysql sybase oracle 达梦 神通 mon
  • configure: error: C preprocessor "/lib/cpp" fails

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 错误代码 root localhost libevent 2 0 21 stable configure make make install checking for a
  • ARTS挑战打卡第十八周

    Algorithm 一周至少一道算法题 Review 阅读并点评至少一篇英文技术文章 Tip 学习至少一个技术技巧 总结和归纳在日常工作中所遇到的知识点 Share 分享一篇有观点和思考的技术文章 01 Algorthm https lee
  • 推荐一个开源虚拟化及云管管理平台

    能解决哪些问题 将几台物理服务器虚拟化成一个私有云平台 需要一个紧凑而且功能相对完整的物理机全生命周期管理工具 将 VMware vSphere 虚拟化集群转换为一个可以自服务的私有云平台 存在使用多云场景 能够在一个界面管理私有云和公有云
  • IDEA配置.gitignore不生效

    问题描述 我在 gitignore里面添加了日志文件不进行追踪 但是每次还是都上传到了云端 gitignore并没有生效 原因 gitignore只能忽略未被track的文件 而git本地缓存 如果某些文件已经被纳入了版本管理中 则修改 g
  • C/C++ 程序自删除

    文章目录 前言 一 代码 二 部分代码解释 前言 一般病毒之内的可能都带有自删除功能 而目前可进行完美自删除的方法并不多 其中一种较好的解决方法就是利用批处理文件 批处理文件一个优点就是 即使自身在运行的情况下也可以删除自己 所以实现的逻辑
  • 【Opencv&Cpp】12 像素统计:最大/小值、平均值、标准差

    minMaxLoc 找到全局最小和最大值 meanStdDev 计算矩阵的均值和标准偏差 找到全局最小和最大值 minmaxloc minMaxLoc InputArray src double minVal double maxVal 0
  • 大家来讨论怎么写概要设计

    http blog csdn net sunwill chen article details 7864904 笔者声明 本文讲述笔者浅薄的观点 意在抛砖引玉 望网友一起发表观点共同切磋 目前网络上的概要设计格式繁多 质量也是参差不齐 许多
  • 单链表C语言代码实现

    一 代码 include
  • sqli-labs-master靶场搭建以及报错解决

    一 前提准备 1 下载 sqli labs master mirrors audi 1 sqli labs GitCode 2 安装PHP study Windows版phpstudy下载 小皮面板 phpstudy xp cn 二 搭建靶
  • 华为OD机试 - 最小传输时延(Java)

    题目描述 某通信网络中有N个网络结点 用1到N进行标识 网络通过一个有向无环图表示 其中图的边的值表示结点之间的消息传递时延 现给定相连节点之间的时延列表times i u v w 其中u表示源结点 v表示目的结点 w表示u和v之间的消息传

随机推荐

  • Pycharm中修改注释文本的颜色(详细设置步骤)

    下面是在Pycharm中设置注释文本颜色的详细步骤 下面是修改前后对比 修改前注释行的颜色 修改后注释行的颜色 以上就是Pycharm中修改注释文本颜色的详细步骤 希望能帮到你
  • 小程序真机调试连接本地服务器进行调试

    小程序连接本地服务器 开发小程序时经常会遇到需要连接本地服务器进行调试的时候 但是总是连接不上 这里就说一下本菜鸟连接本地服务器的方法 第一步 把下图红框的地方勾选住 好多方法都得选这一步 第二步 设置里面代理按图中勾选 第三步是连接的方法
  • JavaScript避免使用return跳出多重循环从而继续执行函数;使用break跳出多重for循环

    一 先来看一下使用break仅跳出一层for循环的用法 const foo function for let i 1 i lt 3 i for let j 1 j lt 3 j if i 2 break console log 输出j的值
  • Mac上使用GPU加速训练模型

    文章目录 前言 使用GPU 前言 上一篇文章中我介绍了使用pytorch的一个完整模型训练套路 其中没有使用gpu 如果要使用gpu的话 win上我们可以使用cuda mac上可以使用mps 而我自己是mac电脑 需要进行如下修改 使用GP
  • ubuntu下docker配置国内镜像源

    既然都看到这篇文章了 就不解释为什么需要配置国内镜像源了 直接上步骤 此文使用ubuntu环境为Ubuntu 18 04 4 LTS 使用 sudo vim etc docker daemon json 命令新建或编辑文件 输入以下内容 r
  • 大话设计模式C++实现-第23章-命令模式

    一 UML图 二 概念 命令模式 Command 将一个请求封装为一个对象 从而使你可用不同的请求对客户进行参数化 对请求进行排队或记录请求日志 以及支持可撤销的操作 三 说明 角色 1 Command类 用来声明执行操作的接口 2 Con
  • 漫谈 SLAM 技术(下)

    转自 https zhuanlan zhihu com p 135958593 3 视觉SLAM系统关键问题 结合上述介绍的SLAM系统 我们从以下几个方面分析视觉SLAM系统需要考虑的关键问题 1 图像信息使用 视觉SLAM方法根据使用图
  • 模块""可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版

    本人最近在研究mencoder 转换视频格式 发现转换rmvb需要 1 把drv43260 dll拷贝到系统的system32文件夹下 2 开始 gt 运行 gt regsvr32 drv43260 dll 来自 http topic cs
  • C++容器之 vector map set查找元素

    前面两篇基本上讲解容器的增加删除 其实现实世界中对数据的查找才是最大的需求 下面主要围绕着容器的查找来讲解 首先 由于vector没有实现find 方法 只能使用algorithm提供的find 方法 所以 直接在vector查找节介绍al
  • 多线程编程

    Linux线程概述 内核线程和用户线程 线程是程序中完成独立任务的完整执行序列 即一个可调度的实体 根据运行环境和调度者身份 线程分为内核线程和用户线程 内核线程 在有的系统上也称为LWP 轻量级进程 运行在内核空间 由内核调度 用户线程
  • 概率在计算机学中的应用,概率统计在计算机中的应用

    概率统计在计算机中的应用 一 综述 研究自然界中随机现象统计规律的数学方法 叫做概率统计 又称数理统计方法 概率论 是根据大量同类随机现象的统计规律 对随机现象出现某一结果的可能性作出一种客观的科学判断 对这种出现的可能性大小做出数量上的描
  • 交换机ACL配置

    交换机ACL配置 实验要求 PC3能ping通R3和R4 PC2能ping通R3和R4 R3和R4全网互通 通过ACL使PC2不能ping通PC3 先给每个接口配置ip PC3 192 168 5 3 24 192 168 5 254 PC
  • ngx_http_ssl_module

    ngx http ssl module 模块 语法 ssl 在 从 默认值 ssl off 背景 http 服务器 支持HTTPS协议为给定的虚拟服务器 推荐使用 ssl 参数的 听 指令而不是 这个指令 语法 ssl buffer siz
  • 哈哈,太真实了!除了《颈椎康复指南》,还有这 9 本书

    点击上方 Java后端 选择 设为星标 优质文章 及时送达 作者 sivagao 链接 https github com sivagao 本文罗列的这些书籍封面其实是各种典型的反模式 不过它们真的是非常常见以至于大家都习以为常了 从 Sta
  • Go面试题专题(一):聊聊你理解的Golang defer关键字

    defer关键字是我们工作中经常用到的go语言特性 也是面试官比较青睐的一个知识点 今天通过这篇文章带各位道友彻底掌握它 面试题文档下链接点击这里免积分下载 go语言入门到精通点击这里免积分下载 文章目录 defer两大特性 defer与r
  • vue中element-ui实现表单根据不同下拉框进行动态表单校验

    vue中element ui实现表单根据不同下拉框进行动态表单校验 我们想实现的功能如下 请看效果 话不多说我们上代码 html部分
  • linux cd命令详解

    Linux cd 英文全拼 change directory 命令用于切换当前工作目录 使用方式 cd dirName 其中 dirName 为目录名称 可为绝对路径或相对路径 若目录名称省略 则切换至home 目录 也表示为 home 目
  • Android平台生成二维码(by google.zxing)

    查了大部分的资料 发现android平台下生成二维码的例子都是使用谷歌的zxing类 因此仿照某一个帖子编写了一个demo进行测试 仿照的帖子 https blog csdn net myname kk article details 77
  • 使用 Hexo 搭建静态个人博客与绑定个人域名

    1 安装Git 下载并安装Git 可以选择淘宝 Git for Windows 镜像 https npm taobao org mirrors git for windows 2 安装Node js 下载安装Node js Node js
  • SpringMVC关于Validform实时校验身份证的作为账户的问题

    此地址上有相关案例 http validform rjboy cn 看不懂别怪我 前端代码 例如 div class f fl item ifo item sfz div