任何人都可以帮助我使用正则表达式来允许至少一个特殊字符,一个大写,一个小写.
这是我到目前为止:
^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
Run Code Online (Sandbox Code Playgroud)
但似乎只按"特殊字符","大写字母","小写字母"的顺序匹配字符.
任何帮助是极大的赞赏
Tim*_*ker 23
你的正则表达式
^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
Run Code Online (Sandbox Code Playgroud)
实际应该工作得很好,但你可以通过删除第一个来做得更好.*:
^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
Run Code Online (Sandbox Code Playgroud)
将匹配包含至少一个小写和一个大写ASCII字符的至少8个字符的任何字符串,以及该集合中的至少一个字符@#$%^&+=(以任何顺序).
这是您可以使用的功能。
function checkRegex(string) {
var checkSpecial = /[*@!#%&()^~{}]+/.test(string),
checkUpper = /[A-Z]+/.test(string),
checkLower = /[a-z]+/.test(string),
r = false;
if (checkUpper && checkLower && checkSpecial) {
r = true;
}
return r;
}
Run Code Online (Sandbox Code Playgroud)
然后检查它是真的还是假的。
var thisVal = document.getElementById('password').value;
var regex = checkRegex(thisVal);
Run Code Online (Sandbox Code Playgroud)
如果var regex是,true则条件满足。