
При написании кода или создании решения вам может понадобиться сравнить две строки, чтобы увидеть, одинаковы ли они, прежде чем продолжить операцию.
Например, когда пользователь входит, вы захотите сравнить имя пользователя с именем в вашей базе данных, чтобы увидеть, совпадают ли они.
В 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()
когда сравнение включает локаль и определенное сравнение, включающее локаль.
Получайте удовольствие от кодировки!