我正在尝试使用javascript来确保在我的网站上注册的用户没有符号,并且密码中至少包含8个字符。我有一个分配给输入btn的onclick函数,它似乎没有工作。
以下是JS Fiddle Link:http://jsfiddle.net/fh8o5vub/
密码语法检查究竟如何工作?我不明白格式..
另外,如何停止提交php表单?返回false不这样做..
function CheckPassword() {
var passw = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,14}$/;
if (document.getElementById("password".value.match(passw)) {
return true;
} else {
alert('You can only use standard letters a-z and your psasword must be atleast eight letters!')
return false;
}
}

<form onsubmit="CheckPassword(password)" id="step2form" name="step2form" method="post" autocomplete="off" action="#">
<input type="password" id="password" name="password" class="form-control formsubfree" ng-model="formData.password" required>
<button type="submit" class="btn btn-danger btn-lg btn-block formsubfree" id="b" style="font-family: 'klavikaRegular'; letter-spacing: 1px;" name="skip" value="0">CONTINUE</button>
</form>
&#13;
谢谢!
答案 0 :(得分:0)
我不知道正则表达式是如何工作的,但是对于不提交的表单,你需要
onsubmit="return CheckPassword(password)"
然后在函数document.getElementById("password").value.match(passw)
中,因为您将.match
函数混合到.getElementById
函数中,因此无效。
答案 1 :(得分:0)
正如已经提到的,你需要使用onsubmit="return CheckPassword(password)"
但是,我敢说你实际上有一个错误,因为我所看到的password
没有被定义。
此外,由于您未在方法定义中使用变量(function CheckPassword()
),因此您不应向其发送任何内容。这不会导致它被调用,但仍然没有必要。