如何在 JavaScript 中使用当前区域设置比较两个字符串?


在本教程中,我们将学习如何使用 JavaScript 在当前区域设置下比较两个字符串。区域设置指的是本地位置或地区。在这里,我们需要根据特定区域设置的语言来比较两个字符串。

通常,当用户使用相等或严格相等运算符比较字符串时,它不会根据当前区域设置比较字符串。因此,我们将学习如何根据特定区域设置的语言来比较两个字符串。

使用 localeCompare() 方法比较两个字符串

String 的localeCompare()方法根据浏览器的语言(即当前区域设置)比较字符串与参考字符串。它是一个对象方法,因此用户需要使用参考字符串调用该方法,并将第二个字符串作为参数传递。

语法

我们可以按照以下语法使用 localeCompare() 方法。

str1.localeCompare(str2);

参数

  • str1 − 这是参考字符串,始终是必需的。

  • str2 − 这是参数字符串;用户需要将其与参考字符串进行比较。

返回值

  • 0 − 如果两个字符串相等。
  • 1 − 如果参考字符串大于参数字符串。
  • -1 − 如果参考字符串小于参数字符串。

示例

在下面的示例中,我们创建了函数compareString(),它以两个字符串作为参数,并在比较两个字符串后呈现输出。在函数内部,我们使用的是localeCompare()方法。

Open Compiler
<html> <head> </head> <body> <h2> Compare two strings with current locale. </h2> <h4> Comparing strings using <i> localeCompare </i> method. </h4> <p id = "output"> </p> <script> let output = document.getElementById("output"); let str1 = "hello"; let str2 = "TutorialsPoint"; function compareStrings(str1, str2) { let result = str1.localeCompare(str2); if (result == 0) { output.innerHTML += str1 + " == " + str2 + "<br/>"; } else if (result == 1) { output.innerHTML += str1 + " > " + str2 + "<br/>"; } else { output.innerHTML += str1 + " < " + str2 + "<br/>"; } } compareStrings(str1, str2); compareStrings("abc", "abc"); </script> </body> </html>

在上面的输出中,用户可以看到字符串“TutorialPoint”的字母顺序高于字符串“hello”。

在不同区域设置中比较两个字符串

在本方法中,我们将使用相同的方法 localeCompare() 来匹配字符串,但我们将更改当前区域设置并根据不同的区域语言比较字符串。此外,我们将传递一些选项作为 localeCompare() 方法的参数,以根据选项比较字符串。

语法

用户可以按照以下语法在 localeCompare() 方法中使用不同的区域设置。

let str1 = "'Hello programmers!'";
let str2 = "Welcome, here.";
let options = { ignorePunctuation: true }
let result = str1.localeCompare(str2, "en-US", options);

参数

  • en-US − 这是一个基于区域语言的区域设置,用户希望根据该区域设置比较两个字符串。这是一个可选参数。“en-US”表示美国地区的英语。我们可以为不同的区域设置添加不同的代码。

  • options − 这也是一个可选参数,包含用于比较字符串的不同选项。在本例中,在比较字符串时,它将忽略标点符号。

示例

在下面的示例中,我们根据 en-US 区域设置比较两个字符串。此外,我们在比较字符串时忽略标点符号。

Open Compiler
<html> <head> </head> <body> <h2> Comparing two strings with current locale. </h2> <h4> comparing strings in different locale using <i>localeCompare</i> method. </h4> <p id = "output"> </p> <script> let output = document.getElementById("output"); let str1 = "'Hello programmers!'"; let str2 = "Welcome, here."; function compareStrings(str1, str2) { let options = { ignorePunctuation: true } let result = str1.localeCompare(str2, "en-US", options); if (result == 0) { output.innerHTML += str1 + " == " + str2 + "<br/>"; } else if (result == 1) { output.innerHTML += str1 + " > " + str2 + "<br/>"; } else { output.innerHTML += str1 + " < " + str2 + "<br/>"; } } compareStrings(str1, str2); </script> </body> </html>

我们学习了如何根据指定的区域设置比较两个字符串。如果我们不指定区域设置,它将采用浏览器的默认语言并基于该语言比较字符串。此外,用户可以使用数学运算符来比较两个字符串。

更新于:2022年8月17日

527 次查看

启动您的职业生涯

通过完成课程获得认证

开始学习
广告