Иногда говорят, что пароль недействителен, когда он действительно действителен

#javascript

#javascript

Вопрос:

Мне нужно убедиться, что он начинается с Z , содержит минимум 8 символов и имеет * . Рассмотрим эту функцию:

 function validatePassword()    
{
var strPassword 

//Request user enter their password then check its validity

strPassword = prompt("Please Enter A Valid Password","");

while ((strPassword.length <7) || (strPassword.indexOf('*') ==-1)  || (strPassword.charAt(0) != 'Z')) {
{
alert("Your password is invalid, n Please try again")
strPassword = prompt("Please Enter A Valid Password","");
}

//Outcome if password is valid

alert("Your password is valid")

//End while

}
}
  

Комментарии:

1. Когда происходит сбой? Какой тестовый пароль выдает ошибку?

2. Приведите пример пароля, который не проверяется должным образом.

3. Кроме того, похоже, что вы хотите, чтобы он повторялся вечно или до тех пор, пока они не введут действительный пароль. Довольно некрасиво для реального мира — я надеюсь, что это не реально.

Ответ №1:

У вас есть двойное { значение при последней проверке OR. Слишком много круглых скобок.

 function validatePassword()    
{
    var strPassword  = prompt("Please Enter A Valid Password","");
    while ((strPassword.length <7) || 
        (strPassword.indexOf('*') ==-1)  || 
        (strPassword.charAt(0) != 'Z'))
    {
        alert("Your password is invalid, n Please try again");
        strPassword = prompt("Please Enter A Valid Password","");
    }
    alert("Your password is valid");
}
  

Ответ №2:

У вас есть, strPassword.length < 7 который должен быть strPassword.length < 8 , или он не соответствует другим требованиям?

РЕДАКТИРОВАТЬ: я бы выделил тесты для действительного пароля и распечатал более значимое сообщение для каждого из них. Тогда вы должны понять, почему это не удается.

Ответ №3:

Этот завершен

http://jsfiddle.net/mplungjan/mvwRj/

 function validatePassword() {
  var strPassword;

  //Request user enter their password then check its validity

  strPassword = prompt("Please Enter A Valid Password - Starts with Z minimum 8 chars including an *","");

  while (strPassword==null || strPassword.length <8 ||
                               strPassword.indexOf('*') ==-1  ||
                               strPassword.charAt(0) != 'Z') {
    alert("Your password is invalid, n Please try again")
    strPassword = prompt("Please Enter A Valid Password","");
  }   //End while


  //Outcome if password is valid

  alert("Your password is valid")

}
validatePassword();