JavaScript 如何检查空/未定义/空字符串

JavaScript 如何检查空/未定义/空字符串

在JavaScript中,””表示空字符串,我们可以使用null关键字初始化字符串为null值。如果我们没有给任何变量赋值,它默认为undefined。

有时,当处理字符串时,我们需要检查字符串是否为空,未定义或null。例如,我们通过HTML表单从用户获取详细信息,用户可以在输入字段中添加空字符串;我们需要验证输入字段并向用户显示错误消息。

在本教程中,我们将学习三种方法来检查字符串是否为空、null或未定义。

使用字符串的trim()方法和length属性

字符串的trim()方法允许我们从字符串开头移除空格。因此,我们可以移除字符串开头的空格。然后,我们可以检查字符串的长度是否为零,字符串可能是空的、null的或未定义的。

语法

用户可以按照下面的语法,使用字符串的trim()方法和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和undefined都是假值,因此当我们将它们转换为布尔值时,Boolean()构造函数始终返回false。

语法

在下面的语法中,我们使用Boolean()构造函数将字符串转换为布尔值并检查它是否为空。

let string3 = undefined;
if (Boolean(string3) == false) {
   // string3 is either null, empty, or undefined
}

示例

我们在下面的示例中转换了包含空、null和undefined值的三个字符串。此外,我们还创建了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>

在上述输出中,用户可以观察到布尔构造函数对于空、null和undefined字符串返回false,并对”Hello”字符串返回true。

使用严格相等运算符

严格相等运算符允许我们比较两个变量的值,并且它还会比较变量的类型。在这里,我们将把我们的字符串与””、null和undefined进行比较。此外,我们将使用OR运算符将所有三个条件一起用于单个if条件中。

如果任何一个条件为true,那就意味着字符串不合法。

语法

用户可以按照以下语法使用严格相等运算符来检查字符串是否为空、null或undefined。

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>

用户学到了三种方法来检查字符串是否为空、未定义或为空值。从这三种方法中,最好的方法是使用Boolean()构造函数的第二种方法。

不过,用户也可以使用Doble、Not(!!)操作符,这提供了简单的语法,但不适合初学者使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程