如何在 JavaScript 中进行区分大小写的字符串比较?


本教程将指导您学习在 JavaScript 中进行区分大小写的字符串比较。

JavaScript 区分大小写。JavaScript 中的关键字、变量、函数名和任何标识符必须使用所需的案例。例如,关键字 for 不能写成 ForFOR

JavaScript 中的字符串是什么?字符串是一个或多个字符的集合,这些字符可以是字母、数字或符号。字符串是 JavaScript 中不可变的原始数据类型,这意味着它们永远不会改变。文本可以使用 JavaScript 字符串进行存储和修改。任何用引号括起来的任意数量的字符都是 JavaScript 字符串。

我们如何在 JavaScript 中进行字符串比较?“严格相等运算符 (===)”用于根据字符串的值和字符大小写进行字符串比较。“比较运算符”与“length”属性一起使用,可以根据字符串的长度进行比较。使用“localeCompare()”方法,可以根据字母顺序比较字符串。

使用严格相等运算符 (===)

在这里,字符串被比较以检查精确匹配。“===”严格相等运算符通常用于比较两个字符串操作数的值。由于它严格地比较字符串的值,而不会将它们转换为公共类型,因此名称“严格”将它与相等运算符“==”区分开来。

当 undefined 或 null 与其他值进行比较时,会出现非直观的行为。对于严格相等检查,这些值是不同的,因为每个值都有唯一的类型。(null === undefined) 返回 false

语法

if (str1 === str2) {
   return true;
} else {
   return false;

这里,只有当 str1 完全等于 str2 时,if 块才会运行。条件返回布尔值。

算法

步骤 1 - 定义两个字符串 - str1str2

步骤 2 - 检查第一个字符串 str1 是否完全等于另一个字符串 str2

步骤 3 - 根据条件检查结果,显示所需输出。

示例 1

在下面的示例中,我们比较两个字符串 - “Tutorials Point”“Tutorials Point”。我们定义一个函数 “compare()” 来比较两个字符串 ‘str1’ 和 ‘str2’。我们使用严格不等式来比较字符串。

<html> <body> <h4> Case-sensitive string comparison in JavaScript</h4> <p id="result1"> </p> <p id="result2"> </p> <p id="result3"> </p> <script> function compare(str1, str2){ if (str1 === str2 ) { return true; } else { return false; } } var str1 = "Tutorials Point"; var str2 = "Tutorials point"; document.getElementById("result1").innerHTML = str1 document.getElementById("result2").innerHTML = str2 document.getElementById("result3").innerHTML = compare(str1, str2) </script> </body> </html>

应用 normalize() 方法

在下面的示例中,我们将看到组合字符的情况。这些字符添加到基于前例的字符中。这种组合会创建音素。例如,带重音符的 e ` 给出 é。这是一个音素。在 JavaScript 中,此字符显示如下。

const str1 = 'e\u0301';
console.log(str1); // é

这里,\u0301 是重音符字符的 Unicode 转义序列,它是一个组合字符。如果我们像下面这样比较,我们将得到 false 作为输出,这意味着字符串不相等,尽管它们实际上相等。

const str1 = 'e\u0301';
const str2 = 'é';
console.log(str1 === str2); // false

因此,为了安全地比较字符串,我们使用 normalize() 方法。此方法提供字符串的规范化 Unicode。

此规范化字符串可以与严格相等进行比较,如下所示。

const str1 = 'e\u0301';
const str2 = 'é';
console.log(str1.normalize() === str2.normalize()); // true

示例 2

在下面的示例中,我们比较两个字符串 - 'e\u0301' 和 'é'。我们规范化字符串,然后使用严格不等式进行比较。

<html> <body> <h4> Case-sensitive string comparison after normalize the string</h4> <p id="result1"> </p> <p id="result2"> </p> <p id="result3"> </p> <script> function compare(str1, str2){ if (str1.normalize() === str2.normalize() ) { return true; } else { return false; } } var str1 = 'e\u0301'; var str2 = 'é'; document.getElementById("result1").innerHTML = str1 document.getElementById("result2").innerHTML = str2 document.getElementById("result3").innerHTML = compare(str1, str2) </script> </body> </html>

在本教程中,我们学习了字符串比较。如果只有 ASCII 字符,我们可以直接比较字符串。如果存在组合字符,则需要在进行严格相等检查之前规范化字符串。

更新于:2022年10月26日

4K+ 次浏览

启动您的 职业生涯

完成课程后获得认证

开始
广告