2011-05-09 5 views
2

Je dois m'assurer qu'il commence par Z, a 8 caractères minimum et a un *. Considérez cette fonction:Il est parfois dit que le mot de passe est invalide quand il est effectivement valide

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 

} 
} 
+0

Quand échouer? Quel mot de passe de test donne une erreur? – MJB

+0

Donnez un exemple de mot de passe qui n'a pas été validé comme prévu. – Oswald

+2

En outre, il semble que vous voulez qu'il boucle pour toujours, ou jusqu'à ce qu'ils entrent un mot de passe valide. Un peu moche pour le monde réel - j'espère que ce n'est pas réel. – MJB

Répondre

1

Vous avez strPassword.length < 7 qui devrait être strPassword.length < 8 ou n'échoueront sur d'autres exigences?

EDIT: Je voudrais séparer les tests pour le mot de passe valide et imprimer un message plus significatif pour chacun. Ensuite, vous devriez voir pourquoi cela échoue.

+0

Je viens de corriger cela – Cool66

2

Vous avez un double { lors du dernier contrôle OU. Trop de parenthèses.

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"); 
} 
0

Celui-ci est complète

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(); 
Questions connexes