Simplifying IF statement when comparing userInput from a prompt
本问题已经有最佳答案,请猛点这里访问。
我正在从头开始写一个简单的石头、纸、剪刀程序,我有一个似乎膨胀的if语句。我知道可以把它剪下来,但我哪儿也找不到答案。
我首先通过提示用户输入来自此语句的响应来获得变量userchoice:
1 | var userChoice = prompt("Choose either Rock, Paper, or Scissors."); |
我希望程序接受大写和非大写的响应(rock或rock有效),并且我还希望在用户的响应无效时提醒他们。
有没有一种方法可以接受无资本化和资本化的回应(岩石或岩石),而不写一个膨胀的if语句,如mine?
1 2 3 | if (userChoice !=="Rock" && userChoice !=="rock") { alert("Invalid response."); } |
此if语句被缩短。在我的实际代码中,if语句还运行在比较纸和剪刀的无头和大写版本上。但为了这个例子,我把所有的胡说八道都忘了。
谢谢
与Arun的回答相同,但更短,您可以使用
1 2 3 | if (/rock/i.test(userChoice)) { ... } |
将用户输入
1 2 3 4 5 | var userChoice = prompt("Choose either Rock, Paper, or Scissors.").toLowerCase(); if (userChoice !=="rock") { alert("Invalid response."); } |