【问题标题】:Password Validation javascript密码验证 javascript
【发布时间】:2025-11-27 20:15:02
【问题描述】:

我正在尝试使用姓名、电子邮件、用户名和密码创建一个非常基本的个人资料页面。我必须有一个密码验证码/按钮。

主页将与常见的个人资料页面非常相似。用户必须能够输入以下内容:

  • 名称字段
  • 电子邮件字段
  • 用户 ID 字段
  • 密码字段 3

  • 验证密码字段

以下按钮是必需的:

  • 密码验证按钮
  • 创建配置文件按钮

我可以把它们放在一起,但我遇到的问题是 javascript 控制台告诉我代码中有一些错误......

function validate(){
    var pass1 = document.getElementById('password');
    var pass2 = document.getElementById('Password2');

    if (pass1 == pass2)
    {
        alert("Passwords Match")
    }

    else
    {
        alert("Passwords Do Not Match")
    }
}
<head>
    <script type="text/javascript" src="Profile Page.js"></script>
</head>

<body>
    Enter First and Last Name
    <input type="text" id="name">
    <br>Enter Your Email Address
    <input type="text" id="email">
    <br>Please Enter a Username
    <input type="text" id="username">
    <br>Please Enter a Password
    <input type="password" id="password">
    <br>Enter Your Password Again
    <input type="Password" id="password2">
    <br>

    <button type="button" id="validate" onClick="validate()">Validate Password</button>
    <button type="button" id="create" onClick="submit()">Create Profile</button>
</body>

好的,所以我知道我的错误在哪里,现在我为密码不匹配设置的警报即将出现,即使密码是相同的。有什么建议吗?

【问题讨论】:

  • ...我什至不知道从哪里开始
  • 那么你的问题是什么?
  • 我在那里统计了至少 4 个完全不同的 JS 错误。请阅读介绍性 JavaScript 教程。 (如果这不能帮助您理解错误,请在问题中包含错误消息!)
  • 控制台告诉我在 javascript 第 1 行中有一个意外的令牌,并且该对象不是验证密码按钮上的函数。所以我的问题是,为什么它告诉我 javascript 第 1 行是出乎意料的,因为它就像我编写的所有其他代码一样是一个函数,为什么它告诉我该按钮不是一个函数?

标签: javascript validation


【解决方案1】:

以下是通过与重复密码比较来验证密码的通用函数,包含小写字母,包含大写字母,包含数字

function validatePassword(password, repeatPassword){
var MinLength = 6;
var MaxLength = 15;

var meetsLengthRequirements:boolean = password.length >= MinLength && repeatPassword.length <= MaxLength;
var hasUpperCasevarter:boolean = false;
var hasLowerCasevarter:boolean = false;
var hasDecimalDigit:boolean = false;

if (meetsLengthRequirements)
{
  for (var i = 0, len = password.length; i < len; i++) {
    var char = password.charAt(i);
    if (!isNaN( +char * 1)){
      hasDecimalDigit = true;
    }
    else{
      if (char == char.toUpperCase()) {
        hasUpperCasevarter = true;
      }
      if (char == char.toLowerCase()){
        hasLowerCasevarter = true;
      }
    }
  }
}

var isValid = meetsLengthRequirements
            && hasUpperCasevarter
            && hasLowerCasevarter
            && hasDecimalDigit;
return isValid;
}

【讨论】:

    【解决方案2】:

    请这样尝试:

    function validateForm(){
        var pass1 = document.getElementsByName("password")[0].value;
        var pass2 = document.getElementsByName("password2")[0].value;
        if (pass1 === pass2) {
            alert("Passwords Match");
        } else {
            alert("Passwords Do Not Match");
        }
    }
    Enter First and Last Name
    <input type = "text" id = "name" /><br/>
    Enter Your Email Address
    <input type = "text" id = "email" /><br/>
    Please Enter a Username
    <input type = "text" id = "username" /><br/>
    Please Enter a Password
    <input type = "password" name = "password" /><br/>
    Enter Your Password Again
    <input type = "Password" name= "password2" /><br/>
    
    <button type = "button" id = "validate" onclick = "validateForm();">Validate Password</button>
    <button type = "button" id = "create" onclick = "submit()">Create Profile</button>

    【讨论】: