localeCompare()
方法用于检查给定 字符串 在排序顺序上是位于另一个字符串之前、之后还是等同。
示例
// comparing 'c' with 'b' using localeCompare()
let result1 = 'c'.localeCompare('b');
// returns positive value if 'b' comes before 'c'
console.log(result1);
// Output:
// 1
localeCompare() 语法
localeCompare()
方法的语法是:
str.localeCompare(compareStr, locales, options)
这里,str
是一个字符串。
localeCompare() 参数
localeCompare()
方法接受:
- compareStr - 用于与
str
比较的字符串。 - locales 和 options (可选) - 这些参数通过指定要使用的格式约定来定制函数。
localeCompare() 返回值
localeCompare() 返回:
- -1 : 如果引用字符串在排序上位于 compareStr 之前。
- 0 : 如果两个字符串相等。
- 1 : 如果引用字符串在排序上位于 compareStr 之后。
注意:由于返回的负整数和正整数在不同浏览器上可能不同,请不要依赖于精确的 -1 或 1 值。
示例 1:使用 localeCompare() 方法
// comparing 'c' with 'b' using localeCompare()
let result1 = 'c'.localeCompare('b');
console.log(result1);
输出
1
在上面的示例中,我们将 'c'
作为引用字符串,将 'b'
作为比较字符串,并将 localeCompare()
的返回值赋给了 result1。
由于字母 'c'
在排序上位于 'b'
之后,所以 'c'.localeCompare('b')
返回一个正数,即 1
。
示例 2:使用 localeCompare()
// comparing 'c' with 'b' using localeCompare()
let result2 = 'b'.localeCompare('c');
console.log(result2);
输出
-1
这里,我们将 'b'
作为引用字符串,将 'c'
作为比较字符串。由于引用字符串在排序上位于 compareStr 之前,所以 'b'.localeCompare('c')
返回一个负值,即 -1。
示例 3:localeCompare() 比较相等字符串
// comparing 'JavaScript' and 'JavaScript' using localeCompare()
let result1 = 'JavaScript'.localeCompare('JavaScript');
console.log(result1);
// comparing 'Python' and 'JavaScript' using localeCompare()
let result2 = 'Python'.localeCompare('JavaScript');
console.log(result2);
输出
0 1
在上面的示例中,我们比较了两个不相等的字符串 'Python'
和 'JavaScript'
。由于 'Python'
在排序上位于 'JavaScript'
之后,因此该方法返回 1。
然而,在比较两个相等的字符串 'JavaScript'
时,该方法返回 0。
示例 4:使用 localeCompare() 配合 locales 和 options
// passing locale that specifies the German formatting convention
let value1 = "ä".localeCompare("z", "de");
console.log(value1); // a negative value: in German, ä sorts before z
// passing locale that specifies the Swedish formatting convention
let value2 = "ä".localeCompare("z", "sv");
console.log(value2); // a positive value: in Swedish, ä sorts after z
// default comparison between two numbers '5' and '40'
console.log("5".localeCompare("40")); // 1
// the last parameters indicates 'options'
let value3 = "5".localeCompare("40", undefined, { numeric: true });
console.log(value3); // a negative value
输出
-1 1 1 -1
另请阅读