验证传递到Javascript提示方法的用户输入字符串

验证传递到Javascript提示方法的用户输入字符串,javascript,Javascript,家庭作业帮助吸血鬼警觉。我正在尝试将用户输入字符串验证功能添加到Codecademy上的“石头、布、剪刀”游戏中。Codecademy站点上的文本编辑器验证我的代码是否正确,但我没有得到预期的行为,即如果用户未能输入“石头”、“布”或“剪刀”字符串,将返回警报 我已经在下面的if语句中列出了条件: var userChoice = prompt("Do you choose rock, paper or scissors?"); function validateUserChoice(user

家庭作业帮助吸血鬼警觉。我正在尝试将用户输入字符串验证功能添加到Codecademy上的“石头、布、剪刀”游戏中。Codecademy站点上的文本编辑器验证我的代码是否正确,但我没有得到预期的行为,即如果用户未能输入“石头”、“布”或“剪刀”字符串,将返回警报

我已经在下面的if语句中列出了条件:

var userChoice = prompt("Do you choose rock, paper or scissors?");

function validateUserChoice(userChoice) {
    if (userChoice !== "rock" || userChoice !== "paper" || userChoice !== "scissors") {
        alert("You can only select rock, paper or scissors!");
        return false;
    }
};
下面是游戏的其余部分。调用前面的函数时,下面的比较函数似乎被绕过,用户在提示符中键入的任何字符串都会打印到屏幕上(请参阅
console.log(“用户选择:”+userChoice);
在底部)。否则,当上述函数被注释掉时,游戏将返回预期行为:

var computerChoice = Math.random();
if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if(computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
};

var compare = function(userChoice, computerChoice) {
    if (userChoice === computerChoice) {
        return "The result is a tie!";
    };

    if (userChoice === "paper") {
        if (computerChoice === "rock") {
            return "paper wins";
        } else {
            if (computerChoice === "scissors") {
                return "scissors wins";
            }
        }   
    };

    if (userChoice === "scissors") {
        if (computerChoice === "rock") {
            return "rock wins";
        } else {
            if (computerChoice === "paper") {
                return "scissors wins";
            }
        }
    }
};
console.log("User Choice: " + userChoice);
console.log("Computer Choice: " + computerChoice);
compare(userChoice, computerChoice);
var computerChoice=Math.random();
如果(计算机选择<0.34){
computerChoice=“rock”;

}否则,如果(computerChoice尝试改变如下条件

function validateUserChoice(userChoice) {
    if (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") {
        alert("You can only select rock, paper or scissors!");
        return false;
    }
};

试着改变如下条件

function validateUserChoice(userChoice) {
    if (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") {
        alert("You can only select rock, paper or scissors!");
        return false;
    }
};

试着改变如下条件

function validateUserChoice(userChoice) {
    if (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") {
        alert("You can only select rock, paper or scissors!");
        return false;
    }
};

试着改变如下条件

function validateUserChoice(userChoice) {
    if (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") {
        alert("You can only select rock, paper or scissors!");
        return false;
    }
};

(userChoice!==“rock”| | userChoice!==“paper”| | userChoice!==“剪刀”)
意味着如果他们没有键入rock,它将验证为true。您需要
(userChoice!==“rock”&&userChoice!==“paper”&&userChoice!==“剪刀”)
,如果他们的所有选择都无效。感谢您的语法更正和解释。此外,我们发现了一个更广泛的解决方案,演示了如何在此处使用while循环进行验证:
(userChoice!=“rock”| | userChoice!=“paper”| | userChoice!=“剪刀”)
意味着如果他们没有键入rock,它将验证为true。您需要
(userChoice!=“rock”&&userChoice!=“paper”&&userChoice!=“剪刀”)
,如果他们的所有选择都无效。感谢您的语法更正和解释。此外,我们发现了一个更广泛的解决方案,演示了如何在此处使用while循环进行验证:
(userChoice!=“rock”| | userChoice!=“paper”| | userChoice!=“剪刀”)
意味着如果他们没有键入rock,它将验证为true。您需要
(userChoice!=“rock”&&userChoice!=“paper”&&userChoice!=“剪刀”)
,如果他们的所有选择都无效。感谢您的语法更正和解释。此外,我们发现了一个更广泛的解决方案,演示了如何在此处使用while循环进行验证:
(userChoice!=“rock”| | userChoice!=“paper”| | userChoice!=“剪刀”)
意味着如果他们没有键入rock,它将验证为true。您需要
(userChoice!=“rock”&&userChoice!=“paper”&&userChoice!=“剪刀”)
,因此如果他们的所有选择都无效。感谢您的语法更正和解释。此外,我们发现了一个更广泛的解决方案,演示了如何在此处使用while循环进行验证: