如何在 JavaScript 中进行区分大小写的字符串比较?
本教程将指导您学习在 JavaScript 中进行区分大小写的字符串比较。
JavaScript 区分大小写。JavaScript 中的关键字、变量、函数名和任何标识符必须使用所需的案例。例如,关键字 for 不能写成 For 或 FOR。
JavaScript 中的字符串是什么?字符串是一个或多个字符的集合,这些字符可以是字母、数字或符号。字符串是 JavaScript 中不可变的原始数据类型,这意味着它们永远不会改变。文本可以使用 JavaScript 字符串进行存储和修改。任何用引号括起来的任意数量的字符都是 JavaScript 字符串。
我们如何在 JavaScript 中进行字符串比较?“严格相等运算符 (===)”用于根据字符串的值和字符大小写进行字符串比较。“比较运算符”与“length”属性一起使用,可以根据字符串的长度进行比较。使用“localeCompare()”方法,可以根据字母顺序比较字符串。
使用严格相等运算符 (===)
在这里,字符串被比较以检查精确匹配。“===”严格相等运算符通常用于比较两个字符串操作数的值。由于它严格地比较字符串的值,而不会将它们转换为公共类型,因此名称“严格”将它与相等运算符“==”区分开来。
当 undefined 或 null 与其他值进行比较时,会出现非直观的行为。对于严格相等检查,这些值是不同的,因为每个值都有唯一的类型。(null === undefined) 返回 false。
语法
if (str1 === str2) { return true; } else { return false;
这里,只有当 str1 完全等于 str2 时,if 块才会运行。条件返回布尔值。
算法
步骤 1 - 定义两个字符串 - str1 和 str2。
步骤 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 字符,我们可以直接比较字符串。如果存在组合字符,则需要在进行严格相等检查之前规范化字符串。