Условное сравнение строк в JavaScript

Сравните две строки, чтобы узнать, одинаковые ли они.
Используйте оператор равенства (==) в условном тесте:

var strName = prompt("What's your name?", "");
if (strName == "Shelley") {
 alert("Your name is Shelley! Good for you!");
} else {
 alert("Your name isn't Shelley. Bummer.");
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Две строки можно сравнить с помощью оператора равенства (==). При его использовании в условном операторе блок кода выполняется, если тест равен true (строки равны):

if (strName == "Shelley") {
 alert("Your name is Shelley! Good for you!");
}

Войти в полноэкранный режим Выйти из полноэкранного режима

Если строки не равны, обрабатывается первый оператор, следующий за блоком условного оператора. Если используется условный оператор if…else, обрабатывается блок кода, следующий за ключевым словом else:

if (strName == "Shelley") {
 alert("Your name is Shelley! Good for you!");
} else {
 alert("Your name isn't Shelley. Bummer.");
}
Вход в полноэкранный режим Выход из полноэкранного режима

Факторы, которые могут повлиять на успех сравнения строк:
Строки имеют регистр и могут состоять из заглавных, строчных символов или их комбинации.
Если регистр не является проблемой, вы, скорее всего, захотите преобразовать
в нижний или верхний регистр, используя встроенные методы String toLowerCase и toUpperCase, перед выполнением сравнения, как показано в следующем коде:

var strName = prompt("What's your name?", "");
if (strName.toUpperCase () == "SHELLEY") {
 alert("Your name is Shelley! Good for you!");
} else {
 alert("Your name isn't Shelley. Bummer.");
}
Вход в полноэкранный режим Выйти из полноэкранного режима

**Обратите внимание, что метод toUpperCase (и toLowerCase) не принимают никаких параметров.
Операторы сравнения работают численно с числами, но лексически со строками.
Например, значение “dog” будет лексически больше, чем “cat”, потому что буква “d” в слове “dog” находится позже в алфавите, чем буква “c” в слове “cat”:

var sOne = "cat";
var sTwo = "dog"
if (sOne > sTwo // false, because "cat" is lexically less than "dog"
Войти в полноэкранный режим Выйти из полноэкранного режима

Если два строковых литерала различаются только регистром, то заглавных символов лексически больше, чем строчных:

var sOne = "Cat";
var sTwo = "cat";
if (sOne >= sTwo) // true, because 'C' is lexically greater than 'c'
Войдите в полноэкранный режим Выйти из полноэкранного режима

Не существует операторов strict greater than или strict less than, поэтому не имеет значения, различаются ли типы данных операндов:

var sOne = new String("cat");
var sTwo = "cat";
if (sOne <= sTwo) // both equal, so true, as data type doesn't matter
Войти в полноэкранный режим Выход из полноэкранного режима

Наконец, метод localeCompare принимает один параметр – строку, которая сравнивается со строковым значением, к которому она присоединена.
Метод возвращает числовое значение, равное 0, если две строки одинаковы; -1, если строковый параметр лексически больше исходной строки; 1 в противном случае:

var fruit1 = "apple";
var fruit2 = "grape";
var i = fruit1.localeCompare(fruit2); // returns -1
Войти в полноэкранный режим Выход из полноэкранного режима

Оцените статью
Procodings.ru
Добавить комментарий