尝试让我的网页获取8个或更多字符长度的密码,并且包含数字和字母,但它不起作用,我不明白为什么。一旦密码有效,它将使用户进入成功页面。
CODE:
<script>
$(document).ready(function() {
$("#submit").click(function() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var confirm = document.getElementById("confirm").value;
var valid = password.length >= 8 // at least 8 characters
&& /[a-z]/.test(password) // contains a lowercase letter
&& /\d/.test(password) // contains a digit
var dataString = 'name=' + name + '&email=' + email + '&password=' + password;
console.log(dataString);
if (name == '' || email == '' || password == '') {
alert("Fill in empty fields");
}
if (password != confirm) {
alert("Passwords do not match.");
} else if (password == confirm && password != valid) {
alert("Password not valid.");
} else if(password == '' && confirm == '' && password == confirm) {
alert("password can't be empty");
} else {
alert("matched");
window.location="newpage.html"
}
return false;
});
});
</script>
请帮帮我:(
答案 0 :(得分:1)
if(password == confirm && !valid)
应该是那样。
答案 1 :(得分:0)
而不是一个巨大的功能,将其分解成碎片(较小的功能)。这种方式更容易管理任何错误,错误,维护等。
现在,请专门回答有关“密码验证功能”的问题,请查看此代码段。
array = {1, 1, 2, 1}
(function($){ $(function(){
var isPasswordValid = function(password){
return password.length >= 8
&& /[a-z]/.test(password)
&& /\d/.test(password)
}
console.log('Is "weakpwd" valid?', isPasswordValid('weakpwd'));
console.log('Is "atLeastEightChars" valid?', isPasswordValid('atLeastEightChars'));
console.log('Is "Gr3atPassword!" valid?', isPasswordValid('Gr3atPassword!'));
}) })(jQuery)
我使用了您用于密码的相同检查......这很好!这意味着您遇到的问题是在其他地方,而不是在密码检查步骤中。
干杯,