【发布时间】:2021-06-04 00:47:34
【问题描述】:
我是 Javascript 的完整初学者,并尝试使用尽可能简单的代码。在 if 语句中使用提示中的变量时,存在一些区分大小写的问题。这是有问题的代码。假设输入完全是“法语”,它可以完美运行
if (number => 1 && number <= 30) {
var lang= prompt ("Which language do you want to translate into, French or German?");
}
while(lang != "French" && lang != "french" && lang != "FRENCH" && lang != "German" && lang != "german" && lang != "GERMAN" ) {
alert("Only French or German is allowed");
var lang= prompt ("Which language do you want to translate into, French or German?");
}
if (number == 1 && lang == "French") {
alert("The translation is " +frenchNumbers[1]);
}
if (number == 2 && lang == "French") {
alert("The translation is " +frenchNumbers[2]);
}
if (number == 3 && lang == "French") {
alert("The translation is " +frenchNumbers[3]);
}
如果用户要输入“法语”或“法语”,我希望“if”语句也能正常工作。我尝试使用下一段代码,但它从一开始就循环显示警报,这不是我想要的。例如,如果我要输入“3”和“FRENCH”,我会首先收到“1”和“2”的警报。
if (number == 1 && lang == "French" || lang == "french" || lang == "FRENCH") {
alert("The translation is " +frenchNumbers[1]);
}
if (number == 2 && lang == "French" || lang == "french" || lang == "FRENCH") {
alert("The translation is " +frenchNumbers[2]);
}
if (number == 3 && lang == "French" || lang == "french" || lang == "FRENCH") {
alert("The translation is " +frenchNumbers[3]);
}
我确信有一个简单的解决方法,尝试解决它有点疯狂,因为我查看的所有信息都远高于我的技能水平
任何帮助都会很棒
谢谢,布拉德
【问题讨论】:
-
您可以在输入中使用字符串方法 .toLowerCase()(或 toUpperCase),并将其与大写或小写测试值进行比较。例如,
lang.toLowerCase() === "french" -
^ 当您浏览文档时,您会看到页面左侧的导航显示了“字符串原型”实现的其他方法。在 Javascript 中,这意味着所有字符串都有可用的方法,例如示例
lang.toLowerCase()。绝对值得看看该类别中可用的其他东西,以及 Array 原型。大量有用的东西——MDN 应该是你学习 javascript API 的首选资源。 -
如果您先将值转换为小写,这样您就不会调用该函数一百万次,那就更好了。像这样:
let lang = prompt("French or German?").toLowerCase(); -
^ 小心点......如果他们点击取消,那将是一个例外:)
标签: javascript if-statement variables prompt case-sensitive