Равность строк в JavaScript – как сравнивать строки в JS

При написании кода или создании решения вам может понадобиться сравнить две строки, чтобы увидеть, одинаковы ли они, прежде чем продолжить операцию.

Например, когда пользователь входит, вы захотите сравнить имя пользователя с именем в вашей базе данных, чтобы увидеть, совпадают ли они.

В JavaScript вы можете сравнивать строки на основе их значения, длины, регистра символов и многое другое. В этой статье вы узнаете, как сравнивать строки JavaScript.

Как сравнить строки в JavaScript с помощью оператора строгого равенства

Суровое равенство, или равенство трех (===), как это означает его символ, является более подробным сравнением, чем свободное равенство (==). Он не только проверяет, совпадают ли значения, но также проверяет операнды:

let a = 12;
let b = '12';

// Loose Equality
console.log(a == b); // true
// Strict Equality
console.log(a === b); // false

Строгий оператор лучше всего использовать для сравнения строк в JavaScript, поскольку он проверяет, одинаковы ли операнды и значения, а затем возвращает логический результат.

let string1 = "freeCodeCamp";
let string2 = "codeCamp";

console.log(string1 === string2); // false

Вы также можете напрямую сравнить строку с переменной и строку со строкой, если хотите:

let string1 = "freeCodeCamp";

console.log(string1 === "codeCamp"); // false
console.log(string1 === "freeCodeCamp"); // true
console.log("codeCamp" === "freeCodeCamp"); // false

Как выполнить сравнение без учета регистра

Сравнивая с оператором строгого равенства, важно знать, что это сравнение чувствительно к регистру. Это означает, что freeCodeCamp не равно FreeCodeCamp потому что первая буква f для одного мала, а для другого велика.

console.log("freeCodeCamp" === "FreeCodeCamp"); // false

Чтобы избежать подобных ситуаций, вы можете выполнять сравнение без учета регистра. Это означает, что вы превращаете сравниваемые строки в один регистр:

let string1 = "freeCodeCamp";
let string2 = "FreeCodeCamp";

console.log(string1.toLowerCase() == string2.toLowerCase()); // true
console.log(string1.toUpperCase() == string2.toUpperCase()); // true

Как сравнить строки в JavaScript с .length Собственность

В JavaScript, когда вы присоединяете .length свойство переменной возвращает длину строки:

let string1 = "freeCodeCamp";

console.log(string1.length); // 12

Это означает, что вы можете использовать свойство длины для сравнения наряду с равенством (свободным или строгим), большим (>) или меньшим (оператор), чтобы проверить, одинаковы ли обе длины, или одна больше другой.

let string1 = "freeCodeCamp";
let string2 = "codeCamp";

console.log(string1.length > string2.length); // true
console.log(string1.length < string2.length); // false
console.log(string1.length == string2.length); // false
console.log(string1.length === string2.length); // false

Как сравнить строки в JavaScript с localeCompare() метод

The localeCompare() метод может сравнивать строки на основе текущего языка в настройках обозревателя.

Этот метод может быть достаточно сложным, но важно знать, что этот метод сравнивает каждый символ обеих строк и возвращает число, которое может быть «-1», «1» или «0».

  • -1: строка левой стороны по алфавиту стоит перед строкой правой стороны.
  • 1: Левая боковая строка в алфавитном порядке идет после правой боковой строки.
  • 0: это означает, что обе строки равны.
let string1 = "freeCodeCamp";
let string2 = "codeCamp";

console.log(string1.localeCompare(string2)); // 1

Это возвращает «1», поскольку «f» стоит после «c» в первом сравнении символов.

let string1 = "freeCodeCamp";
let string2 = "codeCamp";

console.log(string2.localeCompare(string1)); // -1

Теперь это возвращает «-1», поскольку «c» является первым символом string2 слева ставится перед «f». Когда обе строки равны, возвращается «0» независимо от их позиций:

let string1 = "freeCodeCamp";
let string2 = "freeCodeCamp";

console.log(string2.localeCompare(string1)); // 0

Как выполнить сравнение без учета регистра

Также важно подчеркнуть, что когда вы используете localeCompare() метод, он чувствителен к регистру. Это означает, что он вернет «1» или «-1» в зависимости от позиции, даже если обе строки одинаковы, но с разным регистром:

let string1 = "freeCodeCamp";
let string2 = "FreeCodeCamp";

console.log(string2.localeCompare(string1)); // 1

Вы можете исправить это, добавив параметры и локаль к localeCompare() метод. Этот метод позволяет установить локаль, а также параметры, которые можно использовать для преобразования обеих строк в подобные регистры для выполнения сравнения без учета регистра.

let string1 = "freeCodeCamp";
let string2 = "FreeCodeCamp";

console.log(string2.localeCompare(string1, "en", { sensitivity: "base" })); // 0

Вы можете прочитать больше о методе localeCompare() в документации MDN.

Подведению

В этой статье вы узнали, как сравнивать строки в JavaScript с помощью операторов равенства и localeCompare() метод.

Не стесняйтесь использовать желаемые методы, но в основном следует использовать localeCompare() когда сравнение включает локаль и определенное сравнение, включающее локаль.

Получайте удовольствие от кодировки!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *