【问题标题】:whats wrong with this code i don`t know can anyone help me out:这段代码有什么问题我不知道任何人都可以帮助我:
【发布时间】:2017-04-22 02:27:51
【问题描述】:

这是一个密码验证Java Script。每次运行 (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$');

$ 是这里的空间字符,但每次它给我错误时都需要特殊字符。谁能帮帮我。

【问题讨论】:

    标签: javascript if-statement for-loop while-loop do-while


    【解决方案1】:

    试试这个:2 个错误

    它与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;
        }
          }
    

    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$');

    【讨论】:

    • 感谢您的回复和解决方案
    【解决方案2】:
    for(var j = 0; j < specialCharacters.length; j++){
    
    }
    if (input[i] === specialCharacters[j]){
      return true;
    }
    

    我想你的意思是:

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

    【讨论】:

    • 谢谢,伙计。我应该对所有这些错误更加小心......它浪费了我很多时间:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多