【发布时间】:2019-08-07 15:59:02
【问题描述】:
我正在尝试验证最小长度为 8 个字符的密码输入字段,并且必须至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符。 [如果密码有效,标签变为绿色。如果无效,则标签变为红色。]
我想我得到了最小长度部分,但我不确定我是否为其他要求正确实现了我的 Javacsript。
function green() {
var pw = document.getElementById('password').value;
var pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$";
if (pw.value == pattern) {
document.getElementById('pw').style.color = "Green";
document.getElementById('pw').innerHTML = "Password: ✔";
} else {
document.getElementById('pw').style.color = "Black";
document.getElementById('pw').innerHTML = "Password:";
}
}
<label id="pw" for="password">Password:</label>
<input id="password" name="password" minlength="8" maxlength="50" class="form-control" type="password" onkeyup="green()" value="" />
【问题讨论】:
-
首先,您需要修复函数定义语法 - 将参数列表放在 函数名之后
-
您在
pw中获得了两次价值。 -
你应该好好阅读Reference - Password Validation。
标签: javascript regex html validation passwords