JavaScript String localeCompare()

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 比较的字符串。
  • localesoptions (可选) - 这些参数通过指定要使用的格式约定来定制函数。

localeCompare() 返回值

localeCompare() 返回:

  • -1 : 如果引用字符串在排序上位于 compareStr 之前。
  • 0 : 如果两个字符串相等。
  • 1 : 如果引用字符串在排序上位于 compareStr 之后。

注意:由于返回的负整数和正整数在不同浏览器上可能不同,请不要依赖于精确的 -11 值。


示例 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

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战