[英]Regex for password validation and matching
I'm trying to develop a regex expression for a password validation program that I am making with JavaScript. 我正在尝试为我使用JavaScript制作的密码验证程序开发一个正则表达式。
Requirements 要求
The password must be at least seven characters in length. 密码长度必须至少为七个字符。
Must contain at least one 必须至少包含一个
I'm struggling to find the right regex expression to check for all of those components. 我正在努力找到正确的正则表达式来检查所有这些组件。 The password doesn't have to be in any specific order.
密码不必具有任何特定顺序。 I thought regex would be the easiest method for password verification, but now I'm not so sure.
我认为正则表达式是最简单的密码验证方法,但现在我不太确定。
Thanks in advance. 提前致谢。
I think having separate test for each case will be easier. 我认为对每个案例进行单独测试会更容易。
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
Try this I am sharing a JavaScript code: 试试这个我正在共享一个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;
}
}
You can try something like this. 你可以尝试这样的事情。 Separate Regex for different validation rules.
针对不同的验证规则单独使用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");
}
Try this am not sure this satisfy your need completely or not!! 试试这个我不确定这完全满足你的需要或不!
/(?=.*\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
Hope this helps! 希望这可以帮助!
/(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)(?=.*?[^A-Za-z0-9\s]).{7}/.test(password)
Positive lookaheads are used to test for the "at least one of" conditions. 正向前瞻用于测试“至少一个”条件。 Finally, we just make sure that 7 characters except newline can match, and we're done.
最后,我们只确保除了换行符之外的7个字符可以匹配,我们就完成了。
For "special symbols", we're using the negated character class [^A-Za-z0-9\\s]
, but this is obviously flexible and you can use something else that fits your needs. 对于“特殊符号”,我们使用的是否定字符类
[^A-Za-z0-9\\s]
,但这显然是灵活的,您可以使用其他符合您需求的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.