Javascript 至少包含以下[0-9]、[a-z]、[a-z]或特殊字符中的3个的正则表达式(美元除外)
我需要一个正则表达式来验证HTML中的输入字段。模式应至少包含以下三项:Javascript 至少包含以下[0-9]、[a-z]、[a-z]或特殊字符中的3个的正则表达式(美元除外),javascript,html,regex,regex-negation,Javascript,Html,Regex,Regex Negation,我需要一个正则表达式来验证HTML中的输入字段。模式应至少包含以下三项: 编号[0-9] 大写字母[A-Z] 小写字母[a-z] 特殊字符(美元除外) 最小长度为6 有效输入字符串: AAss11 AA11@@ aa11@@ 原子吸收光谱法@@ 无效的输入字符串: AAAAA AA11111 aa111111 AA@@@@@@ AAss11$ 1111111 @@@@@@ 1美元附加费 AAss11@$ 我写了这个正则表达式: ^(((?=.*[A-Z])(?=.*[a-z])(?=.*
^(((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[^$])|((?=.*[A-Z])(?=.*[a-z])(?=.
[!#%&'()*+,-./:;<=>?@[\]^_`{|}~])[^$])|((?=.*[A-Z])(?=.*[0-9])(?=.
[!#%&'()*+,-./:;<=>?@[\]^_`{|}~])[^$])|((?=.*[a-z])(?=.*[0-9])(?=.
[!#%&'()*+,-./:;<=>?@[\]^_`{|}~])[^$])).{6,16}$
^(((?=.[A-Z])(?=.[A-Z])(?=.[0-9])[^$]))|((?=.[A-Z])(?=.[A-Z])(?=.[A-Z])(?=。
[!#%&'()*+,-./:;?@[\]^{{124;}][^$])|((?=.[A-Z])(?=.[0-9])(?=。
[!#%&'()*+,-./:;?@[\]^{{124;}][^$])|((?=.[a-z])(?=.[0-9])(?=。
[!#%&'()*+,-./:;?@[\]^_`{|}~])[^$])).{6,16}$
您可以完成所有迭代(第3次,共4次)。如果ECMAScript new出现,并且它支持条件句
(?(cond)yes | no)
这大大简化了
在这里,它是无序的:
^(?:(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])|(?=.*[0-9])(?=.*[a-z])(?=.*[!"#%&'()*,\-./:;?@[\]_{}])|(?=.*[0-9])(?=.*[A-Z])(?=.*[!"#%&'()*,\-./:;?@[\]_{}])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!"#%&'()*,\-./:;?@[\]_{}]))[0-9a-zA-Z!"#%&'()*,\-./:;?@[\]_{}]{6,16}$
扩展视图
^
(?:
(?= .* [0-9] )
(?= .* [a-z] )
(?= .* [A-Z] )
#(?= .*[!"#%&'()*,\-./:;?@[\]_{}] )
|
(?= .* [0-9] )
(?= .* [a-z] )
#(?= .*[A-Z] )
(?= .* [!"#%&'()*,\-./:;?@[\]_{}] )
|
(?= .* [0-9] )
#(?= .*[a-z] )
(?= .* [A-Z] )
(?= .* [!"#%&'()*,\-./:;?@[\]_{}] )
|
#(?= .*[0-9] )
(?= .* [a-z] )
(?= .* [A-Z] )
(?= .* [!"#%&'()*,\-./:;?@[\]_{}] )
)
[0-9a-zA-Z!"#%&'()*,\-./:;?@[\]_{}]{6,16}
$
JS样本
(2)a-z()([a-z]([a-z[a-z])(([a-z[a-z]);([a-z[a-z])([0-9[0-9]([[0-9[0-9])([[0-9[0-9[0-9]([[0-9[a-0-9])(([[[[[a-0-0-0-9],[[a-a-a-z],[[a-a-z]))(([[[[a-a-a-a-a-z]))(([[[[[[a-z],[[[a-z],[[[a-z],[[[a-a-a-a-a-z]))))))))((((([[[[[[[[[[[[[[[[[[a-z],[[[[a“%&'()*,\-./:?@[\]\{}])[0-9a-zA-z!\”“%&'()*,\-./:;?@[\]{6,16}$,“mg”);
var strPwdTest=
//应该通过
“AAss11\n”+
“AA11@@@n”+
“aa11@@@n”+
“AAss@@@n”+
//应该失败
“AAAAA\n”+
“AA11111\n”+
“aa111111\n”+
“AA@@@@@@\n”+
“AAss11$\n”+
“1111111\n”+
“@@@@@@\n”+
“$1Asss\n”+
“AAss11@$\n”;
var匹配;
while(match=RxPwd.exec(strPwdTest))
{
console.log(匹配[0],“\t..Passed”);
}不要这样做。除了“密码规则”之外,只是让用户使用不太安全的密码(例如,Password1!
)来满足您的任意要求。。。通过使用单个正则表达式,您无法告诉用户他们的输入有什么问题。取而代之的是,测试你想要的每件东西是否存在,并准确地告诉用户他们缺少了什么。这个故事的寓意是,令人难忘的短语更难破解,也更容易记住。