Member 11841791 Ответов: 1

Что не так с моим сравнением строк в javascript?


Всем привет,

Я перескакиваю с C# на Javascript и довольно запутываюсь в сравнении строк. Я получаю входные данные от объекта ввода с типом, установленным в textbox, и разбираю их следующим образом:

if((Card1 < 1 || Card1 > 10) && (Card1.toLowerCase() !== "a" && Card1.toLowerCase() !== "j" && Card1.toLowerCase() !== "q" && Card1.toLowerCase() !== "k"))
		{
			setColor("red");
			setText("Card #1: You can only use valid cards! (1-10 and J/Q/K/A)");
			return;
		}

Предполагается, что он выполняет действие в рамках функции if, когда это не настоящая игральная карта. Игральной картой может быть любое число от 1 до 10 или валет, дама, король, туз. Тем не менее, прямо сейчас, кажется, все в порядке с любой буквой, но не с любой цифрой.

Что я уже пробовал:

Card1 < 1 || Card1 > 10) &&


к

Card1 < 1 || Card1 > 10) ||

1 Ответов

Рейтинг:
2

Ali Majed HA

Привет
Я улучшил свое решение:

<input type="text" id="Card1">
<button onclick="myFunction()">Click me</button>

<script>

function myFunction() {
   var a = document.getElementById("Card1").value;
   var b = parseInt(a);
   
   if(1 <= b && b <= 10) { alert("Done!"); }
   
   else {
      switch(a.toLowerCase()){
        case "a": alert("Done!");
          break;
        case "j" : alert("Done!");
          break;
        case "k": alert("Done!");
          break;
        case "q" : alert("Done!");
          break;
        default: alert("Error!");
     }
   }
   
}
</script>


Я пробовал его, и он прекрасно работает.

с уважением


Member 11841791

Привет! Это не меняет результатов. :(

Ali Majed HA

Я улучшил свой ответ, не могли бы вы проверить его?