Javascript 这个代码有什么问题我不知道有人能帮我吗:

Javascript 这个代码有什么问题我不知道有人能帮我吗:,javascript,if-statement,for-loop,while-loop,do-while,Javascript,If Statement,For Loop,While Loop,Do While,这是一个密码验证Java脚本。每次运行(isPasswordValid('Ggtrt54r$')函数时都会出现错误。 我给出了大写、小写、8个字符和特殊字符作为isPasswordValid输入。但每次我都会收到“(‘密码无效需要特殊字符’)”错误。我的代码无法通过最后的要求。任何人都可以检查一下,让我知道我在这里做错了什么 从这里开始 //主要功能 function isPasswordValid(input){ if (hasUpperCase(input) &&

这是一个密码验证Java脚本。每次运行(isPasswordValid('Ggtrt54r$')函数时都会出现错误。 我给出了大写、小写、8个字符和特殊字符作为isPasswordValid输入。但每次我都会收到“(‘密码无效需要特殊字符’)”错误。我的代码无法通过最后的要求。任何人都可以检查一下,让我知道我在这里做错了什么

从这里开始

//主要功能

function isPasswordValid(input){

    if (hasUpperCase(input) && hasLowerCase(input) &&   isLongEnough(input) && hasSpecialCharacter(input)) {
        console.log('Code works fine !!');
    } else if (!hasUpperCase(input)) {
             console.log('Password Invalid Needs Uppercase');
    }else if (!hasLowerCase(input)) {
             console.log('Password Invalid needs lowercase');
    } else if (!isLongEnough(input)) {
        console.log('Password Invalid needs 8 Characters');
    } else if (!hasSpecialCharacter(input)) {
             console.log('Password Invalid needs Special Characters');
    }
}


    function hasUpperCase (input){
      for (var i = 0; i < input.length; i++){
        if(input[i] === input[i].toUpperCase()){
          return true;
        } 
      }
    }

    function hasLowerCase(input){
      for(var i = 0; i < input.length; i++){
        if (input[i] === input[i].toLowerCase()){
          return true;
        }
      }
    }

    function isLongEnough(input){
      for(var i = 0; i < input.length; i++){
        if (input.length === 8){
          return true;
        }
      }
    }

    function hasSpecialCharacter(input){
      var specialCharacters = ['!', '@', '#', '$', '%', '^', '&', '*'];
      for(var i = 0; i < input.length; i++){
        for(var j = 0; j < specialCharacters.length; j++){

        }
        if (input[i] === specialCharacters[j]){
          return true;
        }
      }
    }

    isPasswordValid('Ggtrt54r$');
函数isPasswordValid(输入){
if(hassuppercase(输入)&&hasslowercase(输入)&&islongtough(输入)&&hasSpecialCharacter(输入)){
log('代码工作正常!!');
}如果(!hassuppercase(输入)){
log('密码无效需要大写');
}如果(!hasLowerCase(输入)){
log('密码无效需要小写');
}如果(!IsLong足够长(输入)){
console.log('密码无效需要8个字符');
}如果(!hasSpecialCharacter(输入)){
log('密码无效需要特殊字符');
}
}
函数大写(输入){
对于(变量i=0;i
$是此处的空间字符,但每次给我错误时都需要特殊字符。有人能帮我吗

for(var j=0;j
我想你的意思是:

for(var j = 0; j < specialCharacters.length; j++){
  if (input[i] === specialCharacters[j]){
    return true;
  }
}
for(var j=0;j
试试这个:2个bug

它与上面的
8
char匹配,因此使用

 if (input.length >= 8){ 
而for循环是个问题。在循环之后应用条件。所以 像这样在循环内部进行更改

for(var i = 0; i < input.length; i++){
    for(var j = 0; j < specialCharacters.length; j++){
    if (input[i] === specialCharacters[j]){
      return true;
    }
      }
for(变量i=0;i
函数isPasswordValid(输入){
if(hassuppercase(输入)&&hasslowercase(输入)&&islongtough(输入)&&hasSpecialCharacter(输入)){
log('代码工作正常!!');
}如果(!hassuppercase(输入)){
console.log('密码无效需要大写';}
如果(!hasLowerCase(输入)){
console.log('密码无效需要小写';}
如果(!IsLong足够长(输入)){
console.log('密码无效需要8个字符');
}如果(!hasSpecialCharacter(输入)){
console.log('密码无效需要特殊字符';}
}
函数大写(输入){
对于(变量i=0;i=8){
返回true;
}
}
}
函数hasSpecialCharacter(输入){
变量specialCharacters=['!'、'@'、'#'、'$'、'%'、'^'、'&'、'*'];
对于(变量i=0;iisPasswordValid('Ggtrt54r$);
是的,谢谢你。我应该更加小心这一切错误……它浪费了我很多时间:)谢谢你的回复和解决方案
for(var i = 0; i < input.length; i++){
    for(var j = 0; j < specialCharacters.length; j++){
    if (input[i] === specialCharacters[j]){
      return true;
    }
      }