需要“至少两个”特定字符的密码正则表达式
Password regex that requires “at least two of” certain characters
我正在研究 javascript 正则表达式,其中包括具有以下条件。到目前为止没有运气。
-允许的最小字符数为 8。
-允许的最大字符数为 64。
-输入的文字至少应包括以下两项-数字、小写字母、大写字母
字母、特殊字符。
-不支持输入符号。
到目前为止,我得到的是@anubhava 的回答here。
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,63}$
此正则表达式将强制执行这些规则:
-至少一个大写英文字母,(?=.*?[A-Z])
-至少一个小写英文字母,(?=.*?[a-z])
-至少一位数,(?=.*?[0-9])
-至少一个特殊字符,(?=.?[#?!@$%^&-])
-长度至少为 8.{8,63}(带锚点)
我的问题是如何满足我的第三个和第四个条件,即:-
-输入的文字至少应包括以下两项-数字、小写字母、大写字母
字母、特殊字符。
-不支持输入符号。
如有任何帮助,我们将不胜感激。
var regex =/^(?=.*\d)(?=.*[!@#$%^&*])(?=.*[a-z])(?=.*[A-Z]).{8,64}$/;
function test() {
if(regex.test(document.getElementById("txtPassword").value)===false)
{
alert("Min 8,Max 64,At Least One Uppercase Character,One Lowercase Character,One Numeric Value And One Special Character(!@#$%^&*) Required ");
}
else
{
alert("Success");
}
}
<input type="text" id="txtPassword" />
<button id="testBtn" onclick=test()>CheckPassword</button>
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)(?![a-z]*$)(?![A-Z]*$)(?![0-9]*$)(?![#?!@$%^&*-]*$).{8,64}$
字符串不能包含4组字符以外的任何符号
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)
字符串不应只包含小写字母
(?![a-z]*$)
字符串不应只包含大写字母
(?![A-Z]*$)
字符串不应只包含数字
(?![0-9]*$)
字符串不应只包含特殊字符
(?![#?!@$%^&*-]*$)
字符串应包含 8 到 64 个字符
.{8,64}$
2020-09-07 更新
如果字符串应包含列表 3 组 4 的符号
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[#?!@$%^&*-])|(?=.*[a-z])(?=.*[0-9])(?=.*[#?!@$%^&*-])|(?=.*[A-Z])(?=.*[0-9])(?=.*[#?!@$%^&*-])).{8,64}$
字符串不能包含4组字符以外的任何符号
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)
然后是 4 个 3 组的 4 个变体,符号应属于:
(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])
或
(?=.*[a-z])(?=.*[A-Z])(?=.*[#?!@$%^&*-])
或
(?=.*[a-z])(?=.*[0-9])(?=.*[#?!@$%^&*-])
或
(?=.*[A-Z])(?=.*[0-9])(?=.*[#?!@$%^&*-])
最后字符串应由 8 到 64 个字符组成
.{8,64}$
文本至少包含 两个 以下 - 数字、小写字母、大写字母、特殊字符。 [A-Za-z0-9#?!@$%^&*-]
之外没有字符
^(?=.*?[A-Z])(?=.*?[a-z])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[0-9])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[a-z])(?=.*?[0-9])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[a-z])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$
文本至少包含以下 三项 - 数字、小写字母、大写字母、特殊字符。 [A-Za-z0-9#?!@$%^&*-]
之外没有字符
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$
我正在研究 javascript 正则表达式,其中包括具有以下条件。到目前为止没有运气。
-允许的最小字符数为 8。
-允许的最大字符数为 64。
-输入的文字至少应包括以下两项-数字、小写字母、大写字母 字母、特殊字符。
-不支持输入符号。
到目前为止,我得到的是@anubhava 的回答here。
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,63}$
此正则表达式将强制执行这些规则:
-至少一个大写英文字母,(?=.*?[A-Z])
-至少一个小写英文字母,(?=.*?[a-z])
-至少一位数,(?=.*?[0-9])
-至少一个特殊字符,(?=.?[#?!@$%^&-])
-长度至少为 8.{8,63}(带锚点)
我的问题是如何满足我的第三个和第四个条件,即:-
-输入的文字至少应包括以下两项-数字、小写字母、大写字母 字母、特殊字符。
-不支持输入符号。
如有任何帮助,我们将不胜感激。
var regex =/^(?=.*\d)(?=.*[!@#$%^&*])(?=.*[a-z])(?=.*[A-Z]).{8,64}$/;
function test() {
if(regex.test(document.getElementById("txtPassword").value)===false)
{
alert("Min 8,Max 64,At Least One Uppercase Character,One Lowercase Character,One Numeric Value And One Special Character(!@#$%^&*) Required ");
}
else
{
alert("Success");
}
}
<input type="text" id="txtPassword" />
<button id="testBtn" onclick=test()>CheckPassword</button>
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)(?![a-z]*$)(?![A-Z]*$)(?![0-9]*$)(?![#?!@$%^&*-]*$).{8,64}$
字符串不能包含4组字符以外的任何符号
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)
字符串不应只包含小写字母
(?![a-z]*$)
字符串不应只包含大写字母
(?![A-Z]*$)
字符串不应只包含数字
(?![0-9]*$)
字符串不应只包含特殊字符
(?![#?!@$%^&*-]*$)
字符串应包含 8 到 64 个字符
.{8,64}$
2020-09-07 更新
如果字符串应包含列表 3 组 4 的符号
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[#?!@$%^&*-])|(?=.*[a-z])(?=.*[0-9])(?=.*[#?!@$%^&*-])|(?=.*[A-Z])(?=.*[0-9])(?=.*[#?!@$%^&*-])).{8,64}$
字符串不能包含4组字符以外的任何符号
^(?!.*[^A-Za-z0-9#?!@$%^&*-]$)
然后是 4 个 3 组的 4 个变体,符号应属于:
(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])
或
(?=.*[a-z])(?=.*[A-Z])(?=.*[#?!@$%^&*-])
或
(?=.*[a-z])(?=.*[0-9])(?=.*[#?!@$%^&*-])
或
(?=.*[A-Z])(?=.*[0-9])(?=.*[#?!@$%^&*-])
最后字符串应由 8 到 64 个字符组成
.{8,64}$
文本至少包含 两个 以下 - 数字、小写字母、大写字母、特殊字符。 [A-Za-z0-9#?!@$%^&*-]
之外没有字符^(?=.*?[A-Z])(?=.*?[a-z])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[0-9])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[a-z])(?=.*?[0-9])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[a-z])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$
文本至少包含以下 三项 - 数字、小写字母、大写字母、特殊字符。 [A-Za-z0-9#?!@$%^&*-]
之外没有字符^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$|^(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?!.*?[^A-Za-z0-9#?!@$%^&*-]).{8,63}$