向密码中添加最少字符

Adding minimum Characters to Password

本文关键字:字符 添加 密码      更新时间:2023-09-26

我有一个工作代码来验证两个密码,但我需要添加最少的字符

这是一个更大项目中的一小部分,但对于我拥有的html:

<input id="username" type="text" name="username" placeholder="username" size="30">
<label for="pass1">Password:</label>
<input type="password" placeholder="password" name="pass1" id="pass1">
<label for="pass2">Confirm Password:</label>
<input type="password" name="pass2" id="pass2" placeholder="password" onkeyup="checkPass(); return false;">
<span id="confirmMessage" class="confirmMessage"></span>

至于我的代码,我有

function checkPass()
{
    var pass1 = document.getElementById('pass1');
    var pass2 = document.getElementById('pass2');
    var message = document.getElementById('confirmMessage');
    var goodColor = "#66cc66";
    var badColor = "#ff6666";
    if(pass1.value == pass2.value)
    {
        pass2.style.backgroundColor = goodColor;
        message.style.color = goodColor;
        message.innerHTML = "Passwords Match!"
    }
    else
    {
        pass2.style.backgroundColor = badColor;
        message.style.color = badColor;
        message.innerHTML = "Passwords Do Not Match!"
    }
}  

如何将表达式(/^(?=.*'d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$/)正确添加到代码中,使其正确执行?

在检查密码是否匹配之前,请检查pass1:的长度

function checkPass()
{
    var pass1 = document.getElementById('pass1');
    var pass2 = document.getElementById('pass2');
    var message = document.getElementById('confirmMessage');
    var goodColor = "#66cc66";
    var badColor = "#ff6666";
    // check length of pass1 here
    if(pass1.value.length < 8) {
        message.innerHTML = "Password must be at least 8 characters.";
        return;
    }
    if(pass1.value == pass2.value){
        pass2.style.backgroundColor = goodColor;
        message.style.color = goodColor;
        message.innerHTML = "Passwords Match!"
    }else{
        pass2.style.backgroundColor = badColor;
        message.style.color = badColor;
        message.innerHTML = "Passwords Do Not Match!"
    }
} 

如果你想使用正则表达式,你可以这样做:

if(pass1.value == pass2.value){
    var reg = /^[0-9a-zA-Z]{8,}$/;
    var res = pass1.value.match(reg);
    if (res == pass1.value) {
        pass2.style.backgroundColor = goodColor;
        message.style.color = goodColor;
        message.innerHTML = "Passwords Match!"
    }
    else {
        message.innerHTML = "Password must be at least 8 letters & numbers only."
    }
}

如果regex正在做比长度检查更有趣的事情,比如确认密码只包含某些字符,这可能会很有用。上面的代码使用match()方法来查看密码值是否与正则表达式匹配。如果是,那么结果将是密码。否则,结果将为空。