专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

表单验证怎么实现,JavaScript实现表单验证方法

来源:小易整编  作者:小易  发布时间:2023-03-21 08:12
摘要:表单验证怎么实现,JavaScript实现表单验证方法一、前言 在Web项目开发中,经常会看到表单验证的功能。例如,用户注册、用户登录等,需要对用户填写的内容进行验证。接下来,小编带着大家一起来实现表单验证的用户名、密码、性别、手机号码、...
表单验证怎么实现,JavaScript实现表单验证方法

一、前言

    在Web项目开发中,经常会看到表单验证的功能。例如,用户注册、用户登录等,需要对用户填写的内容进行验证。接下来,小编带着大家一起来实现表单验证的用户名、密码、性别、手机号码、邮箱验证的功能。

二、项目准备

开发工具:HBuilderX

浏览器:Google Chrome浏览器

三、项目目标

1.了解什么是正则表达式。

2.掌握正则表达式的语法。

3.学会应用正则表达式。

四、项目实现

HTML

<div class="box">            <div class="box-head"><h1>欢迎注册</h1><p style="font-size: 15px;">已有账号?<a href="#" style="color: #3366D4;">登录</a></p></div>            <div class="box-body">                <form id="register" >                    <table>                        <tr>                            <th>用户名称:</th>                            <td>                                <input type="text" id="user" name="user" placeholder="长度4-12位,英文大小写字母">                            </td>                            <td>                                <div></div>                            </td>                        </tr>                        <tr>                            <th>密  码:</th>                            <td><input type="password" id="passWord" name="passWord" placeholder="长度6-20位,大小写字母、数字或下划线"></td>                            <td>                                <div></div>                            </td>                        </tr>                        <tr>                            <th>确认密码:</th>                            <td><input type="password" id="repassWord" name="repassWord" placeholder="请再次输入密码进行确认"></td>                            <td>                                <div></div>                            </td>                        </tr>                        <tr>                            <th>性  别:</th>                            <td><input type="radio" id="Male" name="sex" value="1"/><label for="Male">男</label>                                  <input type="radio" id="Female" name="sex" value="0"/><label for="Female">女</label></td>                            <td>                                <div></div>                            </td>                        </tr>                        <tr>                            <th>手机号码:</th>                            <td><input type="text" id="telephone" name="telephone" placeholder="13、14、15、17、18开头的11位手机号"></td>                            <td>                                <div></div>                            </td>                        </tr>                        <tr>                            <th>电子邮箱:</th>                            <td><input type="text" id="email" name="email" placeholder="用户名@域名(域名后缀至少2个字符)"></td>                            <td>                                <div></div>                            </td>                        </tr>                    </table>                    <div style="display: flex;justify-content: center;">                        <button type="submit" id="btn_ok">注册</button>                    </div>                </form>            </div>        </div>

在上面代码中,使用table标签元素表示定义一个HTML表格,tr表示表格中的行,td表示表格中的列。name表示获取对应文本的正则规则验证,placeholder属性表示提示信息。

JavaScript

1.添加事件


// 获取所有input框        var inputs = document.getElementsByTagName('input');        // 为每个input框添加失去焦点事件        for (var i = 0; i < inputs.length; i++) {            inputs[i].onblur = inputBlur;        }

在上面代码中,首先是获取用户注册页面所有的input元素,为每个input框添加失去焦点事件,利用for循环来添加事件处理函数inputBlur()。

2.写inputBlur()事件处理函数,该函数主要用于获取相应input元素的验证规则和提示信息,用户输入的内容进行检验,之后,把检验的结果显示在HTML页面中,代码如下所示:


function inputBlur() {            // 获取输入框的name值、value值、框中的提示信息            var name = this.name;                       var val = this.value;             var display = this.placeholder;               var display_obj = this[xss_clean][xss_clean].children[2].children[0];  //显示提示信息            //去掉两端空格            val = val.trim();            //判断内容为空,显示提示信息            if (!val) {                error(display_obj, '输入框内容不能为空');                return false;            }            //获取正则匹配规则和提示信息            var reg_msg = getRegMsg(name, display);            //检测是否正则匹配            if (reg_msg['reg'].test(val)) {                // 匹配成功                success(display_obj, reg_msg['msg']['success']);            } else {                // 匹配失败                error(display_obj, reg_msg['msg']['error']);            }        }

在上面代码中,变量名name、val、tips分别是获取input元素中的name、value、placeholder属性的值。

变量名tips_obj用于当input元素失去焦点的时候,显示提示信息。

val.trim()方法主要是用户输入内容中两端空格。

getRegMsg()自定义函数用来获取文本框中相对应的正则和提示信息。

test()方法用于获取当前input框输入的内容是否是正则匹配的模式,如果是则返回true,显示验证成功的信息。如果不是则返回false,显示错误的信息。

3.编写error()和success()函数分别用于验证错误信息、成功信息


// 成功        function success(obj, msg) {            obj.className = 'success';            obj[xss_clean] = msg;        }        // 失败        function error(obj, msg) {            obj.className = 'error';            obj[xss_clean] = msg + ',请重新输入';        }

在上面代码中,obj参数表示显示提示信息的元素对象,msg参数表示自定义的错误信息。

4.获取验证规则和提示信息getRegMsg()函数

项目分析

① 用户名:长度4~12,英文大小写字母。

正则:/^[a-zA-Z]{4,12}$/。

② 密码:长度6~20,大小写字母、数字或下划线。

正则:/^.{6,20}$/。

③ 确认密码:要求与密码框一样,且两次输入相同。

正则:RegExp(‘^’ + 密码框的值 + '$')

④ 性别:

正则:/^[0-1]*$/。

⑤ 手机号码:13、14、15、17、18开头的11位手机号。

正则:/^1[34578]\d{9}$/。

⑥邮箱:用户名@域名(域名后缀至少2个字符)。

正则:/^(\w+(_|-|.)*)+@(\w+(-)?)+(.\w{2,})+$/。

代码如下所示:


function getRegMsg(name, display) {            var reg = msg = '';            switch (name) {                case 'user':                    reg = /^[a-zA-Z]{4,12}$/;                    msg = {'success': '用户名输入正确', 'error': display};                    break;                case 'passWord':                    reg = /^.{6,20}$/;                    msg = {'success': '密码输入正确', 'error': display};                    break;                case 'repassWord':                    var con = document.getElementsByTagName('input')[1].value;                    reg = RegExp("^" + con + "$");                    msg = {'success': '两次密码输入正确', 'error': '两次输入的密码不一致'};                    break;                case 'sex':                    reg = /^[0-1]*$/;                    msg = {'success': '性别已选择', 'error': '性别不能为空'};                    break;                case 'telephone':                     reg=/^1[34578]\d{9}$/;                    msg = {'success': '手机号码输入正确', 'error': display};                    break;                case 'email':                    reg = /^(\w+(\_|\-|\.)*)+@(\w+(\-)?)+(\.\w{2,})+$/;                    msg = {'success': '邮箱输入正确', 'error': display};                    break;            }            return {'reg': reg, 'msg': msg};        }

在上面代码中, "/^[a-zA-Z]{4,12}$/"表示匹配只包含大小写的英文字母;

"/^.{6,20}$/"表示匹配由大小写英文字母、数字或下划线长度在6-20范围内;

"RegExp("^" + con + "$")"表示获取用户输入的密码,把它作为检验确认密码是否正确的正则匹配模式;

" /^[0-1]*$/"表示数字1为男,数字0为女;

"/^1[34578]\d{9}$/"表示11位数的手机号码,以1开头,第二个数字可以是(3、4、5、7、8)其中的一个数字,剩下数字可以0-9之间任意数字;

"/^(\w+(_|-|.)*)+@(\w+(-)?)+(.\w{2,})+$/"表示匹配邮箱地址,它有三部分,分别是用户名、”@“、邮箱域名。

效果图如下所示:

表单验证怎么实现,JavaScript实现表单验证方法

本文案例参考《JavaScript前端开发案例教程》,黑马程序员编著

五、总结

1.本文基于JavaScript基础,实现表单验证的功能。对每一个div层、table、tr、td标签元素进行详解,让读者更好的理解。

2.在JavaScript中首先是表单项添加失去焦点处理,事件处理函数为inputBlur()。该函数用于获取表单name、value及提示信息后,去除空白后,若内容为空调用error()给出提示,否则进行验证。

3.代码没有那么复杂,希望对你有所帮助!


本文地址:百科问答频道 https://www.neebe.cn/wenda/935426.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • 表单验证是什么意思?

    表单验证是什么意思?

    表单验证是给用户内容提供统一化的检查,是网站高效运行的重要保障。它有效地保护着网站法律责任和统一数据格式,根据填写内容的合理性,采取的措施,以确保网站数据的安全性。表单验证通常采用服务器端语言例如Php、Java、C#等来实现,是通过编写...

  • 如何数组合并,JavaScript合并数组的三种方法

    如何数组合并,JavaScript合并数组的三种方法

    如何数组合并,JavaScript合并数组的三种方法数组作为一种数据结构,表示索引项的有序集合。经常会使用到数组,尤其是将多个数组进行合并,比如将数组[1,2,3]和数组[4,5,6]合并,最终得到数组[1,2,3,4,5,6]。数组的合并...

  • 回到顶部如何实现,JavaScript实现回到顶部功能的五种方法

    回到顶部如何实现,JavaScript实现回到顶部功能的五种方法

    回到顶部如何实现,JavaScript实现回到顶部功能的五种方法回到顶部的功能现在基本上是网页的标配了,当你已经浏览到页面底部时,一键返回顶部的功能确实非常方便。随着用户习惯的养成,这个功能都是页面必备的。那么作为一个前端开发者,我们如何实...

  • 表单验证怎么实现,JavaScript实现表单验证方法

    表单验证怎么实现,JavaScript实现表单验证方法

    表单验证怎么实现,JavaScript实现表单验证方法一、前言 在Web项目开发中,经常会看到表单验证的功能。例如,用户注册、用户登录等,需要对用户填写的内容进行验证。接下来,小编带着大家一起来实现表单验证的用户名、密码、性别、手机号码、...

  • html表单怎么制作,html表单代码

    html表单怎么制作,html表单代码

    html表单怎么制作,html表单代码HTML表单大部分情况下,网页中展示的数据或者图片或者多媒体效果都是静态的数据,但是有时用户需要通过网页跟服务器进行动态的数据交互,例如登录、注册等操作,这时需要用到表单。表单其实是由一些输入框、单选、...

  • js教程,JavaScript学习入门教程

    js教程,JavaScript学习入门教程

    js教程,JavaScript学习入门教程JavaScript(通常缩写为JS)是一种解释型、面向对象、多范式的高级编程语言。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)...

  • jscript和javascript的区别

    jscript和javascript的区别

    JavaScript与JScript的区别JScript是Microsoft公司开发的,Javascript是Netscape公司开发的,虽然他们是死对头,但是在现在的浏览器中,无论你把语言指定为Javascript还是Jscript,浏览...

  • 轮播什么意思,一文详解javascript轮播图

    轮播什么意思,一文详解javascript轮播图

    轮播什么意思,一文详解javascript轮播图轮播图,顾名思义就是轮流播放的图片,常见领域比如电商网站,轮流播放热卖商品。或者在线教育平台,轮流播放相关课程封面。overflow属性比如,我们要实现一个相框功能,相框里面放入图片,但是图片...

  • 周排行
  • 月排行
  • 年排行

精彩推荐