Сравните строки без учета регистра

У меня проблема с переменной, которую я сделал (это строка) в 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");
}
Другие вопросы по тегам