2016-12-07 5 views
-2

Это Java-скрипт проверки пароля. Я получаю сообщение об ошибке при каждом запуске (isPasswordValid ('Ggtrt54r $')). Я дал UpperCase, LowerCase, 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$'); 

$ является Пространственное характер здесь, но каждый раз ее дает мне ошибки нужен специальный характер. может ли кто-нибудь помочь мне в этом.

ответ

1
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; 
    } 
} 
+0

Яп спасибо человеку. я должен быть более осторожным во всей этой ошибке ... его убийство мое время много :) –

0

Попробуйте это: 2 ошибки

Его матч выше 8 полукокса, так что используйте с

if (input.length >= 8){ 

И цикл проблема .Вы являются применить условие после изменения loop.So с внутри цикла, как этот

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

+0

Спасибо за ваш ответ и решение –