提示中的 Javascript“不等于”功能

问题描述

我是 Javascript 的非常非常初学者,并且我正在尝试只使用非常基础的知识。我试图只允许两个特定的词被接受到变量提示中。如果输入了两个允许的单词以外的任何其他内容,我想显示一条消息,说明只允许这两个单词,然后再试一次,直到正确为止。这是我目前正在使用的代码。一切正常,直到最后一节

console.log("Start of the program");

var letters = /^[a-zA-Z]*$/;

var number= prompt ("Which number between 1 and 30 do you want to translate?");
    
    while (number <1) {
        alert("Please type an integer number between 1 and 30");
        var number= prompt ("Which number between 1 and 30 do you want to translate?");
}
    while (number >30) { 
        alert("Please type an integer number between 1 and 30");
        var number= prompt ("Which number between 1 and 30 do you want to translate?");
}

    while (letters.test(number)) {
        alert("Please use digits");
        var number= prompt ("Which number between 1 and 30 do you want to translate?");
}

if (number => 1 && number <= 30) {
    var lang= prompt ("Which language do you want to translate into,french or German?");
}
while(lang != "french" != "German") {
    alert("Only french or German is allowed");
    var lang= prompt ("Which language do you want to translate into,french or German?");
}

即使我输入“法语”或“德语”,我仍然会持续收到“只允许法语或德语”警告。如果我将“while (lang !=)”更改为“if (lang !=)”,无论是否正确使用法语或德语,我都会收到一次警报,然后程序继续。我也希望它在我当前使用此代码的结果中不区分大小写(接受法语、法语、french 等)

if (number == 1 && lang == "french") {
        alert("The translation is " +frenchNumbers[1]);

任何帮助将不胜感激

谢谢,布拉德

解决方法

这里缺少&& lang

while(lang != "French" && lang != "German")

JavaScript(也不是我目前知道的任何其他语言)允许您像这样将变量与两个不同的值进行比较,而无需使用布尔运算符,然后重复变量的名称。

有趣的是,lang != "French" != "German" 是有效的语法,但并不代表您的想法。

第一个 lang != "French" 被计算为 truefalse。那么接下来会发生的是:

true != "German"false != "German"

...而且这两个总是正确的。