从提示中比较 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 的回答相同但更短,您可以使用 RegExp
和 i
标志来忽略大小写:
if (/rock/i.test(userChoice)) {
...
}
我正在从头开始编写一个简单的剪刀石头布程序,并且我有一个看起来臃肿的 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 的回答相同但更短,您可以使用 RegExp
和 i
标志来忽略大小写:
if (/rock/i.test(userChoice)) {
...
}