用户名和密码的JavaScript验证

时间:2019-02-03 05:24:32

标签: javascript validation alphanumeric

我正在做家庭作业,一直在想弄清楚如何做以下事情:

  1. uName- 需要输入一些内容(如果没有抛出错误), 要求至少包含一个字母和一个字符的字母数字(如果没有抛出错误), 否则通过检查并增加checkev计数器
  2. 密码- 需要输入一些内容(如果没有抛出错误),要求字符计数大于或等于8个字符(如果没有抛出错误),否则通过检查并增加checkev计数器

在这一点上,我有没有输入触发的原始​​错误,但是,一旦我测试了不满足字母数字或8个字符的第二种情况,我将无法获得预期的响应。

下面是我到目前为止编写的JS和HTML的示例:

任何帮助将不胜感激!先感谢您!

window.onload = init;
    function checkRegistration() {
        var checkev = 0;
        var uName = document.pageForm.userName.value;
        var alphaNum = /^[a-z0-9]+$/i;
        var password = document.pageForm.password.value;
        
       if (uName == "") {
            document.getElementById('userName').innerHTML = "A username is required.";
            checkev=0;
        } else if (uName.match != alphaNum)
            document.getElementById('userName').innerHTML = "Username must contain at least one letter and one number, no special characters.";
        {
            document.getElementById('userName').innerHTML = "";
            checkev++;
        }
        
        
        if (password == "") {
            document.getElementById('password').innerHTML = "A password is required.";
            checkev = 0;
        } else if (password.lenth >= 8)
            document.getElementById('password').innerHTML = "A password of at least 8 characters is required.";
        else {
            document.getElementById('password').innerHTML = "";
            checkev++;
        }
<!DOCTYPE html>
<html lang="en-US">

<head>
    <title>Invitation Page</title>
    <link rel="stylesheet" type="text/css" href="css/main.css" />
    <script src="js/registration.js"></script>
</head>
    <form name="pageForm">
        <form action="#">
            <label for="userName">Username:</label>
            <input type="text" name="userName" placeholder="Enter your Username" />
            <span class="error" id="userName"></span><br><br>
            <label for="Password">Password:
            </label>
            <input type="password" name="password" placeholder="Enter your Password" />
            <span class="error" id="password"></span><br><br>
            <input type="button" value="Submit" onclick="checkRegistration()">
            
            </form>
            </form>

3 个答案:

答案 0 :(得分:0)

1个错字和1个逻辑问题。

尝试password.length < 8

答案 1 :(得分:0)

 <input type="text" name="userName" id="userName" placeholder="Enter your Username" />

<input type="password" name="password" id="password" placeholder="Enter your Password" />

您使用id时错过了getElementById()属性 祝你好运...

答案 2 :(得分:-1)

不要仅使用V4F来对验证进行硬编码

查看https://v4f.js.org了解更多详情

import {Field, Schema} from "v4f";

export Schema({
  username: Field()
    .alpha()
    .min(1)
    .required(),
  password: Field()
    .min(8)
    .required()
});