从提示中比较 userInput 时简化 IF 语句

Simplifying IF statement when comparing userInput from a prompt

我正在从头开始编写一个简单的剪刀石头布程序,并且我有一个看起来臃肿的 IF 语句。我知道它可以被削减,但我无法在任何地方找到答案。

我首先通过提示用户输入他们对此语句的响应来获得变量 userChoice:

var userChoice = prompt("Choose either Rock, Paper, or Scissors.");

我希望程序接受大写和非大写的响应(rock 或 Rock 都有效),我还想在用户的响应无效时提醒用户。

有没有一种方法可以在不编写像我这样臃肿的 IF 语句的情况下接受未大写和大写的响应(rock 或 Rock)?

if (userChoice !== "Rock" && userChoice !== "rock") {
    alert("Invalid response.");
}

此 IF 语句已缩短。在我的实际代码中,IF 语句也在比较纸和剪刀的未大写和大写版本时运行。但是为了示例,我省略了所有废话。

谢谢

将用户输入 userChoice 转换为 lower/upper 大小写,然后与

等小写字符串进行比较
var userChoice = prompt("Choose either Rock, Paper, or Scissors.").toLowerCase();

if (userChoice !== "rock") {
    alert("Invalid response.");
}

与 Arun 的回答相同但更短,您可以使用 RegExpi 标志来忽略大小写:

if (/rock/i.test(userChoice)) {
  ...
}