用于密码验证和匹配的正则表达式

时间:2015-05-11 03:50:23

标签: javascript php html css regex

我正在尝试为使用JavaScript制作的密码验证程序开发一个正则表达式。

要求

密码长度必须至少为七个字符。

必须至少包含一个

  • 大写字母(A-Z)
  • 小写字母(a-z)
  • number(0-9)
  • 特殊符号(!?#@)

我很难找到合适的正则表达式来检查所有这些组件。密码不必具有任何特定顺序。我认为正则表达式是最简单的密码验证方法,但现在我不太确定。

提前致谢。

5 个答案:

答案 0 :(得分:2)

我认为对每个案例进行单独测试会更容易。

var valid = p.length > 6 && // At least 7 characters
/[a-z]/.test(p) && // At least one lowercase letter (a-z)
/[A-Z]/.test(p) && // At least one uppercase letter (A-Z)
/\d/.test(p) && // At least one number (0-9)
/[@#$%]/.test(p); // At least one special symbol

答案 1 :(得分:1)

试试这个我正在共享一个JavaScript代码:

function CheckPassword(inputtxt)   
{   
    var paswd = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{7,15}$/;  
    if (inputtxt.value.match(paswd))   
    {   
        alert('Correct, try another...')  
        return true;  
    }  
    else  
    {   
        alert('Wrong...!')  
        return false;  
    }  
}    

答案 2 :(得分:0)

你可以尝试这样的事情。针对不同的验证规则单独使用Regex。

checkPwd = function () {
    var str = document.getElementById('password').value;
    if (str.length < 7) {
        alert("too_short");
        return ("too_short");
    } else if (str.search(/\d/) == -1) {
        alert("no_num");
        return ("no_num");
    } else if (str.search(/[a-z]/) == -1) {
        alert("no lowercase letter");
        return ("no_lowercase_letter");
    } else if (str.search(/[A-Z]/) == -1) {
        alert("no uppercase letter");
        return ("no_uppercase_letter");
    } else if (str.search(/[@#$%]/) == -1) {
        alert("no_special_character");
        return ("no_special_character");
    }
    alert("ok!!");
    return ("ok");
}

答案 3 :(得分:0)

尝试这个不确定这完全满足您的需求!!

/(?=.*\d)(?=.*[!@#\$%\^\&*\)\(+=._-])(?=.*[a-z])(?=.*[A-Z]).{7,}/;

 (?=.*\d) : Check for digit

 `(?=.*[a-z])` : Check for atleast one lower case

 `(?=.*[A-Z])` : Check for atleast one upper case

{7,}        : Check for min of 7 character

(?=.*[!@#\$%\^\&*\)\(+=._-]) : Check for special characters

希望这有帮助!

答案 4 :(得分:0)

/(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[^A-Za-z0-9\s]).{7}/.test(password)

正向前瞻用于测试“至少一个”条件。最后,我们只确保除了换行符之外的7个字符可以匹配,我们就完成了。

对于“特殊符号”,我们使用的是否定字符类[^A-Za-z0-9\s],但这显然是灵活的,您可以使用其他符合您需求的内容。