Javascript 案例:验证登录用户名

Javascript 案例:验证登录用户名

为了详细的介绍一下JS中的DOM模型,于是决定举个例子来说明一下,方便理解
下图是JS中DOM模型,我们可以把它当成一个类 ,并通过.来获取类中的属性
在这里插入图片描述
在登录界面,我们通常碰到过这样的问题,比如用户名不合法,没有首字母开头等等
下面我就简单的实现一下

需求

我们的需求如下

  • 当用户点击了较验按钮,要获取输出框中的内容。然后验证其是否合法。
    验证的规则是:必须由字母,数字。下划线组成。并且长度是5到12位。

这是一个非常简单的登录界面,为了演示方便,就不加什么css特效了
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS登录验证简单实现</title>
</head>
<body>
<form action="" method="get" align="center">
    用户名:<input type="text" id="username" value="" placeholder="请输入你的用户名"/>
    <br>&nbsp;&nbsp;&nbsp;&nbsp;码: <input type="password" placeholder="请输入你的密码">
    <span id="usernameSpan" style="color:red;"></span>
    <br>
    <button onclick="onclickFun()">登录</button>
</form>

</body>
</html>

实现

我们的目标是实现对用户名的验证,比如用户名不符合要求时,要显示出下面的效果
在这里插入图片描述
这里要用到正则表达式的方法

  • var patt = new RegExp("e");
  • var patt = /[abc]/;

上面两种方法都可以创建正则表达式对象
正则表达的调用也很简单
patt.test(str) 即可返回 truefalse

下面就开始吧

1. 正则表达式

为了判断用户名的格式,我们需要编写正则表达式,这里的要求比较简单
所以使用下面的代码就可以了

var patt = new RegExp("^\\w{5,12}$");
var patt = /^\w{5,12}$/;

注意上面两种写法都可以 ,在第一种写法的时候 斜杠因为需要转义 所以要两个斜杠

2.点击函数

我们的目标是在点击按钮的同时进行验证
所以给出点击函数如下

function onclickFun() {
        var patt = new RegExp("^\\w{5,12}$");
        // var patt = /^\w{5,12}$/;
        var username = document.getElementById('username');
        var test_username = username.value;
        var usernameSpan = document.getElementById('usernameSpan');
        if (patt.test(test_username)) {
            usernameSpan.innerHTML = '用户名合法';
        } else {
            usernameSpan.innerHTML = '用户名不合法';
        }
    }

上面的流程分以下几步

  • 获取用户名输入框对象
  • 获取出错提醒的span对象
  • 通过.value获取值
  • 通过一个简单的判断来改变span对象的innerHTML
全代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS登录验证简单实现</title>
</head>
<body>
<script>
    // 当用户点击了较验按钮,要获取输出框中的内容。然后验证其是否合法
    // 验证的规则是:必须由字母,数字。下划线组成。并且长度是5到12位
    function onclickFun() {
        var patt = new RegExp("^\\w{5,12}$");
        // var patt = /^\w{5,12}$/;
        var username = document.getElementById('username');
        var test_username = username.value;
        var usernameSpan = document.getElementById('usernameSpan');
        if (patt.test(test_username)) {
            usernameSpan.innerHTML = '用户名合法';
        } else {
            usernameSpan.innerHTML = '用户名不合法';
        }
    }

</script>

用户名:<input type="text" id="username" placeholder="请输入你的用户名"/>
<span id="usernameSpan" style="color:red;"></span>
<br>&nbsp;&nbsp;&nbsp;&nbsp;码: <input type="password" placeholder="请输入你的密码">
<br>
<button onclick="onclickFun()">登录</button>


</body>
</html>
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joker-Tong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值