如何在 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() 构造函数。

但是,用户可以使用双非运算符(!!),它提供简单的语法,但不适合初学者。

更新于:2023年3月15日

16K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告