在比较提示中的用户输入时简化IF语句

时间:2015-03-05 06:30:53

标签: javascript if-statement prompt capitalization capitalize

我从头开始编写一个简单的Rock,Paper,Scissors程序,我有一个看起来很臃肿的IF语句。我知道它可以减少,但我无法在任何地方找到答案。

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

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

我希望程序接受大写和非大写的响应(摇滚或Rock会有效),我还想提醒用户他们的回复无效。

有没有办法接受非资本化和大写的回应(摇滚或摇滚)而不用像我这样的臃肿的IF声明?

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

此IF声明缩短了。在我的实际代码中,IF语句也用于比较非大写和大写的纸和剪刀版本。但是为了这个例子,我把所有的废话都留下了。

由于

2 个答案:

答案 0 :(得分:2)

将用户输入userChoice转换为大写/小写,然后与较低的大小写字符串比较

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

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

答案 1 :(得分:2)

与Arun的回答相同,但更短,您可以使用带有i标记的RegExp来忽略大小写:

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