iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >原生js怎么实现表单的正则验证
  • 933
分享到

原生js怎么实现表单的正则验证

2023-06-14 23:06:26 933人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关原生js怎么实现表单的正则验证,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.

这篇文章将为大家详细讲解有关原生js怎么实现表单的正则验证,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

javascript可以做什么

1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.可以处理表单,检验用户的输入,并提供及时反馈节省用户时间。3.可以根据用户的操作,动态的创建页面。4使用JavaScript可以通过设置cookie存储在浏览器上的一些临时信息。

实现了如下功能:

用户名:onfouc显示msg规则;onkeyup计算字符,其中中文为两个字符;onblur,验证是否通过

邮箱:onblur 正则匹配,正则是根据自己的需求写的,可以根据个人需求更改

.密码:onkeyup时显示密码的强弱度,onblur时验证密码,是否为相同字符,是否全字符,或全数字,长度是否符合要求

确认密码:验证是否和上一次一致

提交按钮只有在全部input验证通过后才有效,否则无效

主要知识点:

中文为两个字符:

function getLength(str) {    return str.replace(/[^\x00-xff]/g, "xx").length;    //x00-xff表示在ascii码中所有的双字节字符,这句话意思是将所有非单字节的字符替换成xx,即两个单字节字符,然后再计算长度}

邮箱验证的正则:

var re_e = /^[\w_\.\-]+@[\w]+.([\w]{2,4})$/g

是否全为相同字符:

function findStr(str, n){    var temp = 0;    for(var i = 0;i<str.length;i++){        if(str.charAt(i)==n){            temp++:        };    }}

是否全为数字,是否全为字符

 var re_n =/[^\d]/g ; if(!re_n.test(str)){//全为数字} var re_n =/[^\a-zA-Z]/g ; if(!re_n.test(str)){//全为字符}

表单验证全部通过按钮才有效,可提交:

//我的处理是,在每一个input中都加入一个验证标识符,例如email_state;另写一个验证的函数,验证这四个input的验证标识符则将按钮设为可点,反之则禁用;再每一次onblur的时候都调用一次这个验证函数。

原生js怎么实现表单的正则验证

完整代码如下

function reGISter() {    var oName = document.getElementById("name");    var count = document.getElementById("count");    var psw = document.getElementById("psw");    var psw2 = document.getElementById("psw2");    var email = document.getElementById("email");    var name_msg = document.getElementsByClassName("name_msg")[0];    var psw_msg = document.getElementsByClassName("psw_msg")[0];    var psw2_msg = document.getElementsByClassName("psw2_msg")[0];    var email_msg = document.getElementsByClassName("email_msg")[0];    var psw = document.getElementById("psw");    var psw2 = document.getElementById("psw2");    var intensity = getByClass("intensity")[0].getElementsByTagName("span");    var registerbtn = document.getElementById("submit");    var oName_state = false;    var email_state = false;    var psw_state = false;    var psw2_state = false;    var name_length = 0;    oName.onfocus = function() {        name_msg.style.display = "inline-block";    }    oName.onkeyup = function() {        count.style.visibility = "visible";        name_length = getLength(this.value);        count.innerhtml = name_length + "个字符";        if (name_length == 0) {            count.style.visibility = "hidden";        }    }    oName.onblur = function() {        //含有非法字符 不能为空 长度超25 长度少于6个字符        var re = /[^\w\u4e00-\u9fa5]/g;        if (re.test(this.value)) {            name_msg.innerHTML = "<i class='fa fa-close'>含有非法字符</i>";            oName_state = false;        } else if (this.value == "") {            name_msg.innerHTML = "<i class='fa fa-close'>不能为空</i>";            oName_state = false;        } else if (name_length > 25) {            name_msg.innerHTML = "<i class='fa fa-close'>不能超出25个字符</i>";            oName_state = false;        } else if (name_length < 6) {            name_msg.innerHTML = "<i class='fa fa-close'>不能少于6个字符</i>";            oName_state = false;        } else {            name_msg.innerHTML = "<i class='fa fa-check-square'>OK!</i>";            oName_state = true;        }        checkfORM();    }    psw.onfocus = function() {        psw_msg.style.display = "inline-block";        psw_msg.innerHTML = "<i class='fa fa-lightbulb-o'>6-16个字符,不能单独使用字母、数字或符号</i>"    }    psw.onkeyup = function() {        if (this.value.length > 5) {            intensity[1].className = "active";            psw2.removeAttribute("disabled");            psw2_msg.style.display = "inline-block";        } else {            intensity[1].className = "";            psw2.setAttribute("disabled", "");            psw2_msg.style.display = "none";        }        if (this.value.length > 10) {            intensity[2].className = "active";            psw2.removeAttribute("disabled");            psw2_msg.style.display = "inline-block";        } else {            intensity[2].className = "";        }    }    psw.onblur = function() {        //不能为空 不能相同字符 长度6-16 不能全数字 不能全字母         var m = findStr(psw.value, psw.value[0]);        var re_n = /[^\d]/g;        var re_t = /[^a-zA-Z]/g;        if (this.value == "") {            psw_msg.innerHTML = "<i class='fa fa-close'>不能为空</i>";            psw_state = false;        } else if (m == this.value.length) {            psw_msg.innerHTML = "<i class='fa fa-close'>不能为相同字符</i>";            psw_state = false;        } else if (this.value.length < 6 || this.value.legth > 16) {            psw_msg.innerHTML = "<i class='fa fa-close'>长度应为6-16个字符</i>";            psw_state = false;        } else if (!re_n.test(this.value)) {            psw_msg.innerHTML = "<i class='fa fa-close'>不能全部为数字</i>";            psw_state = false;        } else if (!re_t.test(this.value)) {            psw_msg.innerHTML = "<i class='fa fa-close'>不能全部为字母</i>";            psw_state = false;        } else {            psw_msg.innerHTML = "<i class='fa fa-check-square'>OK!</i>";            psw_state = true;        }        checkform();    }    psw2.onblur = function() {        if (psw2.value != psw.value) {            psw2_msg.innerHTML = "<i class='fa fa-close'>两次输入不一致</i>";            psw2_state = false;        } else {            psw2_msg.innerHTML = "<i class='fa fa-check-square'>OK!</i>";            psw2_state = true;        }        checkform();    }    email.onblur = function() {        var re_e = /^[\w_\-\.]+@[\w]+\.([\w]{2,4})$/g;        if (!re_e.test(this.value)) {            email_msg.innerHTML = "<i class='fa fa-close'>请输入正确的邮箱格式</i>";;            email_state = false;        } else {            email_msg.innerHTML = "<i class='fa fa-check-square'>OK!</i>";            email_state = true;        }        checkform();    }    function checkform() {        if (oName_state && oName_state && psw_state && psw2_state) {            registerbtn.removeAttribute("disabled");            // registerbtn.className+=" "+"readySubmit";            $("#submit").addClass("readySubmit");        } else {            registerbtn.setAttribute("disabled", "");            //registerbtn.className = registerbtn.className.replace( new RegExp( "(\\s|^)" + "readySubmit" + "(\\s|$)" ), " " );              // registerbtn.className = registerbtn.className.replace( /(\s|^)readySubmit(\s|$)/g, " " );                   $("#submit").removeClass("readySubmit");        }    }}function getLength(str) {    return str.replace(/[^\x00-xff]/g, "xx").length;}function findStr(str, n) {    var temp = 0;    for (var i = 0; i < str.length; i++) {        if (str.charAt(i) == n) {            temp++;        }    }    return temp;}

部分html代码

<form id="form">   <div class="name-field">        <label>用户名</label>        <input type="text" id="name" autofocus requiered/><span class="msg name_msg"><i class="fa fa-lightbulb-o"> 5-25个字符,1个汉字为两个字符,推荐使用中文会员名</i></span>        <div id="count">0个字符</div>   </div>   <div class="email-field" requiered>        <label>邮箱</label>       <input type="text" id="email" /><span class="msg email_msg"></span>       </div>   <div class="pwd-field" requiered>        <label>密码</label>        <input type="passWord" id="psw" /><span class="msg psw_msg"></span>        <div class="intensity">            <span class="active">弱</span><span>中</span><span>强</span>       </div>   </div>   <div class="pwd2-field" requiered>        <label>确认密码</label>        <input type="password" id="psw2" disabled="" /><span class="msg psw2_msg">请再次输入</span>   </div>   <button type="submit" id="submit" disabled="" class="submitBtn">注册</button></form>

CSS部分

.name-field {    margin-top: 10px}.email-field {    margin-top: 3px}.pwd-field {    margin-top: 10px}.pwd2-field {    margin-top: 10px}.register label {    float: left;    width: 80px;    margin-right: 10px;    text-align: right}.register .name_msg,.register .psw_msg,.register .psw2_msg,.register .email_msg {    margin-left: 10px;    display: none}.intensity,#count {    padding-left: 90px;    margin-top: 3px}#count {    visibility: hidden;    color: #999;    font-size: 12px}.intensity span {    display: inline-block;    background: #FBAA51;    width: 55px;    height: 20px;    text-align: center}.intensity .active {    background: rgba(0, 128, 0, 0.61)}.register .submitBtn {    width: 163px;    margin: 10px 0 0 90px}#submit {    color: #555}

关于“原生js怎么实现表单的正则验证”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 原生js怎么实现表单的正则验证

本文链接: https://www.lsjlt.com/news/275857.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 原生js怎么实现表单的正则验证
    这篇文章将为大家详细讲解有关原生js怎么实现表单的正则验证,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2....
    99+
    2023-06-14
  • 原生js实现表单的正则验证(验证通过后才可提交)
    实现了如下功能: 1.用户名:onfouc显示msg规则;onkeyup计算字符,其中中文为两个字符;onblur,验证是否通过 2.邮箱:onblur 正则匹配,正则是根据自己的...
    99+
    2024-04-02
  • jQuery怎么实现注册正则表单验证
    使用jQuery实现注册正则表单验证的步骤如下:1. 添加jQuery库文件到HTML页面中:```html```2. 编写HTML...
    99+
    2023-08-11
    jQuery
  • js如何使用正则表达式验证表单
    这篇文章给大家分享的是有关js如何使用正则表达式验证表单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图:图(1)初始图图(2)填入信息校验代码如下:<!DOCTYPE...
    99+
    2024-04-02
  • JS如何实现身份证信息验证正则表达式
    小编给大家分享一下JS如何实现身份证信息验证正则表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!很多时候我们都是通过一组正则...
    99+
    2024-04-02
  • 如何实现JS表单验证
    这篇文章主要介绍了如何实现JS表单验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先晒图index.html<!DOCTYPE&nb...
    99+
    2024-04-02
  • 基于原生JS验证表单组件xy-form怎么用
    小编给大家分享一下基于原生JS验证表单组件xy-form怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!原生form表单fo...
    99+
    2024-04-02
  • JS实现表单验证案例
    本文实例为大家分享了JS实现表单验证案例的具体代码,供大家参考,具体内容如下 1.当输入框失去焦点时,验证输入内容是否符合要求 (1)获取表单输入框(2)绑定 onblur 事件(...
    99+
    2024-04-02
  • JS如何通过正则表达式实现验证功能
    这篇文章主要为大家展示了“JS如何通过正则表达式实现验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何通过正则表达式实现验证功能”这篇文章吧。1、验...
    99+
    2024-04-02
  • jQuery怎么实现表单验证
    这篇文章将为大家详细讲解有关jQuery怎么实现表单验证,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码如下所示:<script type=&quo...
    99+
    2024-04-02
  • javascript手机验证、邮箱验证、密码验证的正则表达式简单封装实例
    javascript【手机验证】、【邮箱验证】、【密码验证】的正则表达式的封装: 【手机验证】: 以下代码是验证手机号码的正则表达式的方法, 【checkPhone】:表示的是方法的...
    99+
    2024-04-02
  • BootStrap怎么实现表单验证
    这篇文章主要为大家展示了“BootStrap怎么实现表单验证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“BootStrap怎么实现表单验证”这篇文章吧。Boo...
    99+
    2024-04-02
  • css怎么实现表单验证
    本篇内容介绍了“css怎么实现表单验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   原理   表...
    99+
    2024-04-02
  • JavaScript怎么实现表单验证
    这篇文章主要介绍“JavaScript怎么实现表单验证”,在日常操作中,相信很多人在JavaScript怎么实现表单验证问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实现表单验证”的疑...
    99+
    2023-07-02
  • 怎么使用PHP正则对表单数据进行验证
    这篇文章主要介绍了怎么使用PHP正则对表单数据进行验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如何使用PHP正则对表单数据进行验证?首先,我们先布局我们的HTML的表单...
    99+
    2023-06-15
  • HTML5中怎么实现表单验证
    这篇文章将为大家详细讲解有关HTML5中怎么实现表单验证,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。<!DOCTYPE html>&...
    99+
    2024-04-02
  • PyQt5实现QLineEdit正则表达式输入验证器
    本文主要介绍了QLineEdit正则表达式输入验证器,分享给大家,具体如下: from PyQt5 import QtWidgets, QtCore, QtGui, Qt imp...
    99+
    2024-04-02
  • Javascript中怎么实现表单验证
    这篇文章将为大家详细讲解有关Javascript中怎么实现表单验证,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.表单项不能为空: ﹤ scri...
    99+
    2024-04-02
  • layui表单验证select下拉框怎么实现验证
    这篇文章主要介绍layui表单验证select下拉框怎么实现验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!layui 的form表单里的select 一开始以为加上lay-ver...
    99+
    2024-04-02
  • vue中的rules表单验证怎么实现
    这篇文章主要介绍“vue中的rules表单验证怎么实现”,在日常操作中,相信很多人在vue中的rules表单验证怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中的rules表单验证怎么实现”的疑...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作