当前位置: 首页 > 知识库问答 >
问题:

需要“至少两个”特定字符的密码正则表达式

汲涵育
2023-03-14

我正在使用javascript正则表达式,其中包括以下条件。到目前为止没有运气。

-允许的最小字符数为8。

-允许的最大字符数为64。

-输入的文本应至少包括以下两个-数字、小写字母、大写字母、特殊字符。

-不支持输入符号。

到目前为止,我所拥有的是这个@anubhava答案。

^(?=..[A-Z])(?=..[A-Z])(?=..[0-9])(?=..?[#?!@$%^

该正则表达式将执行以下规则:

-至少一个大写英文字母, (? =. *?[ A-Z])

-至少一个小写英文字母,(?=*.[a-z])

-至少一位数字,(?=.*?[0-9])

-至少一个特殊字符,(?=.?[#?!@$%^

-至少8个长度。{8,63}(带锚)

我的问题是如何满足我的第三和第四个条件,即:-

-输入的文本应至少包括以下两个-数字、小写字母、大写字母、特殊字符。

-不支持输入符号。

任何帮助都将不胜感激。


共有3个答案

公羊信厚
2023-03-14

文本至少包括以下两种-数字、小写字母、大写字母和特殊字符。[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}$
袁高峰
2023-03-14
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>
 
苍温文
2023-03-14
^(?!.*[^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}$
^(?!.*[^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#?!@$%^&*-]$)

然后是3组4个符号的4个变体:

(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])

(?=.*[a-z])(?=.*[A-Z])(?=.*[#?!@$%^&*-])

(?=.*[a-z])(?=.*[0-9])(?=.*[#?!@$%^&*-])

(?=.*[A-Z])(?=.*[0-9])(?=.*[#?!@$%^&*-])

最后,字符串应该由8到64个字符组成

.{8,64}$
 类似资料: