密码验证不能使用Javascript

时间:2017-03-20 15:39:32

标签: javascript html

尝试让我的网页获取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>

请帮帮我:(

2 个答案:

答案 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)

我使用了您用于密码的相同检查......这很好!这意味着您遇到的问题是在其他地方,而不是在密码检查步骤中。

干杯,