【问题标题】:Password match method validation javascript密码匹配方法验证javascript
【发布时间】:2018-01-13 14:17:22
【问题描述】:

它不能正常工作,我得到密码不匹配!对于我用字母、数字和大写字母编写的每个密码

var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$"/; 

var pass = document.getElementById("password").value;
if (pass == "") {
  alert("Enter the user password");
  document.getElementById("password").focus();
  return false;
}

if (pass.length < 8) {
  alert("Password too short, at least 8 characters");
  document.getElementById("password").focus();
  return false;
}
var pasw = pass.match(reg);
if (pasw) {
  alert("Password is valid");
} else {
  alert("Password doesn't match!");
  return false;
}

【问题讨论】:

  • 您能否澄清您的问题并正确格式化您的帖子?
  • 输出是什么?也使用 if(pass) 而不是 if(pass=="") 因为 javascript 强制传递给布尔值,如果传递为 null、空或未定义,则不会进入 if 循环。
  • @lok​​i pasw 是一个布尔值问题出在代码的最后一部分,我需要获取匹配方法密码有效如果我写的密码包含大写、小写和数字,但我总是得到密码不匹配!
  • @NicoHaase 我需要获取密码有效如果我写的密码包含大写、小写和数字,但我总是得到密码不匹配!
  • 也许你应该验证你的正则表达式

标签: javascript passwords match


【解决方案1】:

首先,根据这个结果使用var reg = ^(?:(?=.*[a-z])(?:(?=.*[A-Z])(?=.*[\d\W])|(?=.*\W)(?=.*\d))|(?=.*\W)(?=.*[A-Z])(?=.*\d)).{8,}$ 而不是var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$"/;

Regular expression to enforce complex passwords, matching 3 out of 4 rules

其次,使用reg.test(pass) 而不是pass.match(reg)

JavaScript test() Method

test() 方法测试字符串中的匹配项。 如果找到匹配项,此方法返回 true,否则返回 假的。

var str = "The best things in life are free";
var patt = new RegExp("e");
var res = patt.test(str);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-18
    • 2018-12-30
    • 1970-01-01
    • 2017-03-16
    • 2017-12-05
    • 1970-01-01
    • 2016-08-27
    • 2015-05-11
    相关资源
    最近更新 更多