如何在 JavaScript 中使用当前区域设置比较两个字符串?
在本教程中,我们将学习如何使用 JavaScript 在当前区域设置下比较两个字符串。区域设置指的是本地位置或地区。在这里,我们需要根据特定区域设置的语言来比较两个字符串。
通常,当用户使用相等或严格相等运算符比较字符串时,它不会根据当前区域设置比较字符串。因此,我们将学习如何根据特定区域设置的语言来比较两个字符串。
使用 localeCompare() 方法比较两个字符串
String 的localeCompare()方法根据浏览器的语言(即当前区域设置)比较字符串与参考字符串。它是一个对象方法,因此用户需要使用参考字符串调用该方法,并将第二个字符串作为参数传递。
语法
我们可以按照以下语法使用 localeCompare() 方法。
str1.localeCompare(str2);
参数
str1 − 这是参考字符串,始终是必需的。
str2 − 这是参数字符串;用户需要将其与参考字符串进行比较。
返回值
- 0 − 如果两个字符串相等。
- 1 − 如果参考字符串大于参数字符串。
- -1 − 如果参考字符串小于参数字符串。
示例
在下面的示例中,我们创建了函数compareString(),它以两个字符串作为参数,并在比较两个字符串后呈现输出。在函数内部,我们使用的是localeCompare()方法。
<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 区域设置比较两个字符串。此外,我们在比较字符串时忽略标点符号。
<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>
我们学习了如何根据指定的区域设置比较两个字符串。如果我们不指定区域设置,它将采用浏览器的默认语言并基于该语言比较字符串。此外,用户可以使用数学运算符来比较两个字符串。