您可能想比较两个字符串以了解按字母顺序哪个更高或更低,或者查看它们是否相等。
您可以通过多种方式做到这一点。本文将向您展示其中的两个。
1、如何使用 localeCompare 比较字符串
您可以使用 localeCompare 方法比较当前语言环境中的两个字符串。语法如下:
string1.localeCompare(string2)
localeCompare 返回:
- 1 如果 string1 大于(按字母顺序排列)string2
- -1 如果 string1 比 string2 小(按字母顺序排列)
- 0 如果 string1 和 string2 按字母顺序相等
下面是一些比较两个字符串的例子:
const string1 = "hello"
const string2 = "world"
const compareValue = string1.localeCompare(string2)
// -1
它返回 -1,因为在英语语言环境中,hello 在 world 中出现在 w 之前(w 在字母顺序上比 h 更靠后)
另一个例子:
const string1 = "banana"
const string2 = "back"
const compareValue = string1.localeCompare(string2)
// 1
上面的比较返回了 1,因为在英语语言环境中,“banana in banana” 在 “bac in back” 之后。
再举一个例子:
const string1 = "fcc"
const string2 = "fcc"
const string3 = "Fcc"
const compareValue1 = string1.localeCompare(string2)
// 0
const compareValue2 = string1.localeCompare(string3)
// -1
比较 “fcc” 和 “fcc” 返回 0,因为它们的顺序相同。 “fcc” 和 “Fcc” 返回 -1,因为大写 “F” 大于小写 “f”。
在某些浏览器中,它可能会返回 -2 或其他负值而不是 -1。因此,不要依赖于 -1 或 1,而是依赖于负值(小于 0)或正值(大于 0)
2、如何使用数学运算符比较字符串
在比较字符串时,您还可以使用大于 (>)、小于 (<) 和等于等数学运算符。
数学运算符的工作方式与 localeCompare 类似——根据字符串中字符的顺序返回结果。
使用前面的示例:
const string1 = "hello"
const string2 = "world"
console.log(string1 > string2)
// false
string1 不大于 string2,因为 h 在 w 之前,所以是小于。
另一个例子:
const string1 = "banana"
const string2 = "back"
console.log(string1 > string2)
// true
string1 大于 string2,因为 ban 在 back 之后。
最后一个例子:
const string1 = "fcc"
const string2 = "fcc"
const string3 = "Fcc"
console.log(string1 === string2)
// true
console.log(string1 < string3)
// false
string1 等于(===
) string2,但string1 不小于 string3,与 localeCompare 相反。
对于数学运算符,“fcc” 大于 “Fcc”,但对于 localeCompare,“fcc”.localeCompare(“Fcc”)” 返回 -1,表明“fcc” 小于 “Fcc”。
这种行为是不建议使用数学运算符比较字符串的原因之一,即使它有可能这样做。
因此,对于比较字符串,在可能存在的许多方法中,使用 localCompare 是一种有效的方法,因为它可以用于不同的语言。
现在您知道了一种比较字符串的简单方法。祝您编码愉快!