可能重复:
密码验证正则表达式
8 到 16 个字符,3 个字符类中的每个字符至少有 1 个字符 - 字母大写和小写字母、数字、符号。
我有这段代码,但它不起作用,当我写超过 16 个字符时,它被认为是有效的,但它不应该;它应该可以与 3 个字符类一起使用,但它可以与 4 个字符类一起使用,我的错误在哪里?
http://jsbin.com/ugesow/1/edit
<label for="pass">Enter Pass: </label>
<input type="text" id="pass" onkeyup="validate()">
脚本
function validate() {
valor = document.getElementById('pass').value;
if (!(/(?=.{8,16})(?=.*?[^\w\s])(?=.*?[0-9])(?=.*?[A-Z]).*?[a-z].*/.test(valor))) {
document.getElementById('pass').style.backgroundColor = "red";
} else {
document.getElementById('pass').style.backgroundColor = "#adff2f";
}
}