如何在 JavaScript 中檢查空/未定義/null 字串?
在 JavaScript 中,“”表示空字串,我們可以使用 null 關鍵字將字串初始化為 null 值。如果我們不給任何變數賦值,則預設情況下它是未定義的。
有時,在處理字串時,我們需要檢查字串是否為空、未定義或 null。例如,我們透過 HTML 表單獲取使用者詳細資訊,使用者可以向輸入欄位新增空字串;我們需要驗證輸入欄位並向用戶顯示錯誤訊息。
在本教程中,我們將學習三種方法來檢查字串是否為空、null 或未定義。
使用 string.trim() 方法和 string.length 屬性
string.trim() 方法允許我們刪除字串開頭的空格。因此,我們可以刪除字串開頭的空格。之後,我們可以檢查字串的長度是否為零,如果是,則該字串可以為空、null 或未定義。
語法
使用者可以按照以下語法使用 string.trim() 方法和 string.length() 屬性來檢查空、未定義或 null 字串。
let string1 = " ";
string1 = string1.trim();
if (string1.length == 0) {
// string is empty
}
示例
在下面的示例中,我們建立了兩個不同的字串。一個是空的,另一個只包含空格。使用者可以在輸出中看到,我們的邏輯表明這兩個字串都是空的,因為第二個字串只包含空格。
<html>
<body>
<h3> Using the<i> string.trim() method and string.length() </i> property to check whether a string is null, undefined, or empty. </h3>
<p id = "output"> </p>
<script>
let output = document.getElementById("output");
let string1 = "";
let string2 = " ";
string1 = string1.trim();
string2 = string2.trim();
if (string1.length == 0) {
output.innerHTML += "The string1 is empty! </br>";
}
if (string2.length == 0) {
output.innerHTML += "The string2 is empty! </br>";
}
</script>
</body>
</html>
將字串轉換為布林值並檢查它是否為空、未定義或 null
我們可以使用 Boolean 建構函式或雙非運算子(!!)將字串轉換為布林值。當我們將任何變數轉換為布林值時,它會將所有虛假值對映為 false,將其他值對映為 true。在 JavaScript 中,空字串、null 和未定義是虛假值,因此當我們將其轉換為布林值時,Boolean() 建構函式總是返回 false。
語法
在下面的語法中,我們使用了 Boolean() 建構函式將字串轉換為布林值並檢查它是否為空。
let string3 = undefined;
if (Boolean(string3) == false) {
// string3 is either null, empty, or undefined
}
示例
在下面的示例中,我們轉換了三個包含空、null 和未定義值的字串。此外,我們建立了 isValid() 函式,該函式將字串作為引數並將其轉換為布林值。之後,我們檢查 Boolean() 建構函式返回的字串值是 true 還是 false。
<html>
<body>
<h3> Converting the<i> string to boolean </i> to check whether a string is null, undefined, or empty. </h3>
<p id = "output"> </p>
<script>
let output = document.getElementById("output");
let str1 = "";
let str2 = null;
let str3 = undefined;
function isValid(str) {
if (Boolean(str)) {
output.innerHTML += "The " + str + " is valid <br/>";
} else {
output.innerHTML += "The " + str + " is not valid <br/>";
}
}
isValid(str1);
isValid(str2);
isValid(str3);
isValid("Hello");
</script>
</body>
</html>
在上面的輸出中,使用者可以觀察到 Boolean 建構函式對於空、null 和未定義的字串返回 false,而對於“Hello”字串返回 true。
使用嚴格相等運算子
嚴格相等運算子允許我們比較兩個變數的值,它也比較變數的型別。在這裡,我們將我們的字串與“”,null 和 undefined 進行比較。此外,我們將使用 OR 運算子將所有三個條件一起用於單個 if 條件。
如果三個條件中的任何一個為真,則表示字串無效。
語法
使用者可以按照以下語法使用嚴格相等運算子來檢查字串是否為空、null 或未定義。
if (str === "" || str === null || str === undefined) {
// string is not valid
} else {
// string is valid
}
示例
在下面的示例中,isValid() 函式包含 if-else 語句,該語句檢查字串是否有效。如語法中所述,我們在 if 語句條件中使用了 OR 運算子,同時檢查空、null 和未定義字串的所有三個條件。
<html>
<body>
<h3> Using the<i> strict equality operator </i> to check whether string is null, undefined or empty.</h3>
<p id = "output"> </p>
<script>
let output = document.getElementById("output");
function isValid(str) {
if (str === "" || str === null || str === undefined) {
output.innerHTML += "The " + str + " is not valid <br/>";
} else {
output.innerHTML += "The " + str + " is valid <br/>";
}
}
isValid(null);
isValid(undefined);
isValid("TutorialsPoint");
</script>
</body>
</html>
使用者學習了三種方法來檢查字串是否為空、未定義或 null。這三種方法中最好的一種是第二種方法,它使用 Boolean() 建構函式。
但是,使用者可以使用雙非運算子(!!),它提供簡單的語法,但不適合初學者。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP