使用Javascript验证密码

使用Javascript验证密码,javascript,passwords,Javascript,Passwords,我正试图用“新密码”解决方案满足客户的要求 我有以下要求: 1-新密码必须为8-13个字符, 2-密码必须包含数字, 3-密码必须包含大小写, 4-密码不得包含用户名和密码 5-之前不得使用密码 我不是Javascript方面的专家,我一直在尝试将所有这些需求放在一个脚本中,但我不确定如何解决这个需求的第1、4、5部分,所以我希望有人能帮助我做些什么,以实现所有这些需求 另外,我的“弱密码、中等密码、强密码”消息显示在一个名为msg的输入元素的顶部(正如您所知) 这是我的剧本: function

我正试图用“新密码”解决方案满足客户的要求

我有以下要求:
1-新密码必须为8-13个字符,
2-密码必须包含数字,
3-密码必须包含大小写,
4-密码不得包含用户名和密码
5-之前不得使用密码

我不是Javascript方面的专家,我一直在尝试将所有这些需求放在一个脚本中,但我不确定如何解决这个需求的第1、4、5部分,所以我希望有人能帮助我做些什么,以实现所有这些需求

另外,我的“弱密码、中等密码、强密码”消息显示在一个名为msg的输入元素的顶部(正如您所知)

这是我的剧本:

function validatePassword(password) {

  // Do not show anything when the length of password is zero.
  if (password.length === 0) {
    document.getElementById("msg").innerHTML = "";
    return;
  }

  // Create an array and push all possible values that you want in password

  var matchedCase = new Array();
  matchedCase.push("[$@$!%*#?&]"); // Special Charector
  matchedCase.push("[A-Z]"); // Uppercase Alpabates
  matchedCase.push("[0-9]"); // Numbers
  matchedCase.push("[a-z]"); // Lowercase Alphabates

  // Check the conditions
  var ctr = 0;
  for (var i = 0; i < matchedCase.length; i++) {
    if (new RegExp(matchedCase[i]).test(password)) {
      ctr++;
    }
  }
  // Display it
  var color = "";
  var strength = "";
  switch (ctr) {
    case 0:
    case 1:
    case 2:
          strength = "Contraseña Débil";
          color = "red";
          break;
    case 3:
          strength = "Contraseña Regular";
          color = "orange";
          break;
    case 4:
          strength = "Contraseña Fuerte";
          color = "green";
          break;
  }
  document.getElementById("msg").innerHTML = strength;
  document.getElementById("msg").style.color = color;
}
函数验证密码(密码){
//密码长度为零时不显示任何内容。
如果(password.length==0){
document.getElementById(“msg”).innerHTML=“”;
返回;
}
//创建一个数组,并在密码中推送所有可能的值
var matchedCase=新数组();
matchedCase.push(“[$@$!%*#?&]”;//特殊字符
matchedCase.push(“[A-Z]”;//大写字母Alpabates
matchedCase.push(“[0-9]”;//数字
matchedCase.push(“[a-z]”;//小写字母
//检查情况
var-ctr=0;
对于(变量i=0;i
首先,我不建议在客户端验证密码。它很容易被操纵,而且不安全。验证服务器端的密码是一种方法。你说你已经有人在做服务器端的事情了,他们应该在将任何信息(包括密码)放入某种数据库之前验证这些信息

但这并不能回答你的问题:

第5部分不能是客户端。您必须与服务器进行检查以验证旧密码

第1部分很简单,您已经知道如何在代码中找到密码长度

if(password.length >= 8 && password.length <= 13) {
    //length is valid
}

首先,我不建议在客户端验证密码。它很容易被操纵,而且不安全。验证服务器端的密码是一种方法。你说你已经有人在做服务器端的事情了,他们应该在将任何信息(包括密码)放入某种数据库之前验证这些信息

但这并不能回答你的问题:

第5部分不能是客户端。您必须与服务器进行检查以验证旧密码

第1部分很简单,您已经知道如何在代码中找到密码长度

if(password.length >= 8 && password.length <= 13) {
    //length is valid
}
1.-句柄密码长度(范围为8-13) 我建议,对于最大长度,您对输入使用本机属性
maxlength


并更新函数,在长度大于8之前不显示任何密码强度:

if (password.length < 8) {
  document.getElementById("msg").innerHTML = "";
  return;
}
信息取决于你,只是放了些示范性的东西


5.-退出,必须在服务器端处理。
最后,看看最后的代码:

const username=“k3llydev”;
函数validatePassword(密码){
//密码长度为零时不显示任何内容。
如果(密码长度<8){
document.getElementById(“msg”).innerHTML=“”;
返回;
}
if(密码。包括(用户名)){
document.getElementById(“msg”).innerHTML=“La contraseña no debe contenner el nombre de usuario。”;
返回;
}
//创建一个数组,并在密码中推送所有可能的值
var matchedCase=新数组();
matchedCase.push(“[$@$!%*#?&]”;//特殊字符
matchedCase.push(“[A-Z]”;//大写字母Alpabates
matchedCase.push(“[0-9]”;//数字
matchedCase.push(“[a-z]”;//小写字母
//检查情况
var-ctr=0;
对于(变量i=0;i

1.-句柄密码长度(范围为8-13) 我建议,对于最大长度,您对输入使用本机属性
maxlength


并更新函数,在长度大于8之前不显示任何密码强度:

if (password.length < 8) {
  document.getElementById("msg").innerHTML = "";
  return;
}
信息取决于你,只是放了些示范性的东西


5.-已退出,必须在服务器端进行处理。
最后,看看最后的代码:

const username=“k3llydev”;
函数validatePassword(密码){
//密码长度为零时不显示任何内容。
如果(密码长度<8){
document.getElementById(“msg”).innerHTML=“”;
返回;
}
if(密码。包括(用户名)){
document.getElementById(“msg”).innerHTML=“La contraseña no debe contenner el nombre de usuario。”;
返回;
}
//创建一个数组