我正在尝试为使用JavaScript制作的密码验证程序开发一个正则表达式。
要求
密码长度必须至少为七个字符。
必须至少包含一个
我很难找到合适的正则表达式来检查所有这些组件。密码不必具有任何特定顺序。我认为正则表达式是最简单的密码验证方法,但现在我不太确定。
提前致谢。
答案 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]
,但这显然是灵活的,您可以使用其他符合您需求的内容。