【问题标题】:how to use json array for password validation?如何使用 json 数组进行密码验证?
【发布时间】:2018-09-15 19:08:27
【问题描述】:

我正在尝试循环 json 数组以进行密码验证。谁能帮帮我。

var pwdarray= { "pwd":[ {  
     "TEXT":"Password must be at least 6 character(s) long.",
     "EXPRESSION":"\/(^(.){6,}$)\/"
  },
  {  
     "TEXT":"Password must contain at least 1 lowercase letter(s).",
     "EXPRESSION":"/[a-z]/"
  }
  ]}
  var pswd ="textpasswordvalue";
  if (pswd.length < pwd.EXPRESSION) {
      $('#length').removeClass('valid').addClass('invalid');
    } else {
      $('#length').removeClass('invalid').addClass('valid');
    }

【问题讨论】:

  • 您需要什么帮助? “有人能帮帮我吗”并没有告诉我们太多...

标签: javascript jquery arrays passwords


【解决方案1】:

不要将/ 放在表达式周围。然后你可以用new RegExp将它转换成正则表达式,并用它来测试密码。你可以循环使用.every(),只要测试成功就会执行。

var pwdarray = {
  "pwd": [{
      "TEXT": "Password must be at least 6 character(s) long.",
      "EXPRESSION": "^(.){6,}$"
    },
    {
      "TEXT": "Password must contain at least 1 lowercase letter(s).",
      "EXPRESSION": "[a-z]"
    }
  ]
}
$("#check").click(function() {
  var pswd = $("#pass").val();
  $("#error").text("Password is good").addClass('valid').removeClass('invalid');
  pwdarray.pwd.every(({
    TEXT: text,
    EXPRESSION: exp
  }) => {
    if (!new RegExp(exp).test(pswd)) {
      $("#error").text(text).addClass('invalid').removeClass('valid');
      return false;
    } else {
      return true;
    }
  });
});
.invalid {
  color: red;
}

.valid {
  color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="pass">
<button id="check">Check</button>
<div id="error"></div>

【讨论】:

    【解决方案2】:

    您可以使用这段代码来测试每个带有密码的表达式

    var valid = true;
    var message;
    
    for(var k in pwdarray.pwd){
        var regex = new RegExp(pwdarray.pwd[k].EXPRESSION);
        if(pswd.search(regex) > -1){
            valid = false;
            message = pwdarray.pwd[k].TEXT;
            break;
        }
    }
    

    【讨论】:

      【解决方案3】:

      首先您需要访问您的EXPRESSION,例如pwdarray['pwd'][index]['EXPRESSION'],其中index 是一个整数。这可能来自 for 循环。其次,您需要使用您的正则表达式 match() 您的 pswd

      var pwdarray = { 
        "pwd": [ 
          {  
           "TEXT":"Password must be at least 6 character(s) long.",
           "EXPRESSION":"\/(^(.){6,}$)\/"
          },
          {  
           "TEXT":"Password must contain at least 1 lowercase letter(s).",
           "EXPRESSION":"/[a-z]/"
          }
        ]
      };
      
      var pswd = "test";
      
      for (var index in pwdarray['pwd'])
        if (pswd.match (pwdarray['pwd'][index]['EXPRESSION']))
          $('#length').removeClass('invalid').addClass('valid');
        else {
          $('#length').removeClass('valid').addClass('invalid');
          document.write (pwdarray['pwd'][index]['TEXT']);
        }
      &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

      【讨论】:

        猜你喜欢
        • 2017-03-07
        • 1970-01-01
        • 1970-01-01
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 2020-02-28
        • 2016-06-09
        • 1970-01-01
        相关资源
        最近更新 更多