Ajax调用给出部分验证

时间:2018-09-17 07:01:12

标签: jquery ajax

我已经编写了此Ajax代码来验证表单,它可以正常工作,但是它正在检查唯一的密码是否为空,而不是在检查密码的其他部分。我哪里错了!我从网上获得的密码正则表达式。这是对的吗?请纠正我。

$('#login-btn').click(function(event) {
  console.log('hit')

  if (formValidate()) {
    $.ajax({
      method: "POST",
      url: '/login',
      data: {
        email: $('#id_Email').val(),
        password: $('#id_Password').val(),
        csrfmiddlewaretoken: '{{ csrf_token }}',
      },
      success: function(res) {
        var response = $.parseJSON(res)
        $('#login-data').html(response.msg)
        if (response.code == 200) {
          $('#login-data').html(response.msg);
          window.location = "http://localhost:8000";
        }
      },
    })
  }
})

function formValidate() {
  var isValid = true;
  if ($('#id_Email').val() == "") {
    isValid = false
    $('#login-data').html('Please Enter Email Address')
  } else {
    if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($('#id_Email').val()))) {
      isValid = false;
      $('#login-data').html('Please Enter Valid Email Address')
    }
  }
  if ($('#id_Password').val() == "") {
    isValid = false
    $('#login-data').html('Please Enter Password')
  } else {
    if (!(/^(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,}$/.test($('#id_Password').val()))) {
      isValid = false;
      $('#login-data').html('Password Length Must Be 8 with One Spacial Character & One Digit')
    }
  }
  return isValid;
}

2 个答案:

答案 0 :(得分:0)

尝试关注

/^(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,}$/

http://jsbin.com/beyixomuxo/edit?js,console

答案 1 :(得分:0)

尝试一下:

(?=(?=.*[\d]+.*)(?=.*[A-Za-z]+.*)(?=.*[\\\|\=\+\~\/\-\*\.\?\!\~\&\[\]\(\)\^\$\#\@\{\}]+.*)(?=[\w\\\|\=\+\~\/\-\*\.\?\!\~\&\[\]\(\)\^\$\#\@\{\}]{8,}))