Javascript 它有时会说密码在实际有效时无效

Javascript 它有时会说密码在实际有效时无效,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) || (strPa

我需要确保它以
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

}
}
函数validatePassword()
{
变量strPassword
//请求用户输入密码,然后检查其有效性
strPassword=prompt(“请输入有效密码”);

而((strPassword.length您有
strPassword.length<7
哪个应该是
strPassword.length<8
,或者它在其他要求上失败了


编辑:我会将有效密码的测试分离出来,并为每个测试打印出一条更有意义的消息。然后你会看到它失败的原因。

你在最后一次或检查时有一个双
{
。括号太多了

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");
}
函数validatePassword()
{
var strPassword=prompt(“请输入有效密码”);
而((strPassword.length这个是完整的

函数validatePassword(){
var-strPassword;
//请求用户输入密码,然后检查其有效性
strPassword=prompt(“请输入有效密码-以Z开头,最少8个字符,包括*,”);

while(strPassword==null | | strPassword.length何时失败?哪个测试密码会出错?请给出一个未按预期验证的示例密码。此外,看起来您希望它永远循环,或者直到它们输入有效密码。这对现实世界来说有点难看——我希望它不是真实的。
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();