如何在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日

3K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.