Сравните строки без учета регистра
У меня проблема с переменной, которую я сделал (это строка) в JavaScript. Это будет prompt
от пользователя, а затем с switch
Я проверю, правда это или нет. Затем, когда я введу его в верхнем регистре, он скажет, что он идентифицирован как другой var.
Вот мой код:
var grade = prompt("Please enter your class") ;
switch ( grade ){
case "firstclass" :
alert("It's 500 $")
break;
case "economic" :
alert("It's 250 $")
break;
default:
alert("Sorry we dont have it right now");
}
4 ответа
Как сказал @nicael только строчные буквы, которые они вводят. Однако, если вам нужно сохранить способ ввода и сравнить только с использованием строчных эквивалентов, используйте это:
var grade = prompt("Please enter your class") ;
switch ( grade.toLowerCase() ){
case "firstclass" :
alert("It's $500");
break;
case "economic" :
alert("It's $250");
break;
default :
alert("Sorry we don't have it right now");
}
Просто строчные это изначально.
var grade = prompt("Please enter your class").toLowerCase() ;
Вы можете установить всю строку в нижний регистр, используя метод-прототип String toLowerCase()
и сравните два таким образом.
Чтобы ввод оставался прежним, измените строку во время оператора switch:
switch( grade.toLowerCase() ) {
// your logic here
}
Вы должны всегда сравнивать заглавную строку со заглавными значениями в чувствительных к регистру языках.
Или ниже, ниже.
var grade = prompt("Please enter your class") ;
switch (grade.toUpperCase())
{
case "FIRSTCLASS" :
alert("It's 500 $")
break;
case "ECONOMIC" :
alert("It's 250 $")
break ;
default :
alert("Sorry we dont have it right now");
}