【问题标题】:Javascript: How to check if a string is empty? [duplicate]Javascript:如何检查字符串是否为空? [复制]
【发布时间】:2011-01-23 19:10:33
【问题描述】:

我知道这很基础,但我是 javascript 新手,无法在任何地方找到答案。

如何检查字符串是否为空?

【问题讨论】:

  • 空格算空吗?如果是这样,您可能需要一个正则表达式来测试它。
  • 来这里补充一点,有些人实际上应该检查isBlank,这将是variable.trim() === ''
  • 修剪字符串总是有意义的 if(title.trim().length === 0) { //code}

标签: javascript string


【解决方案1】:

但为了更好的检查:

if(str === null || str === '')
{
    //enter code here
}

【讨论】:

  • 其实我打算在它关闭之前编辑它: if(!str || str == "") { //enter code here } 有很多方法可以做到这一点,但是一个 String如果其中有“”,则不一定为空。空是为空。
  • 从哪里得知 JS 中空变量的长度为 0?您从哪里找到此信息?
  • 如果 str 未定义怎么办?如果您要检查虚假性,最好的选择是if (!str)。但是,如果您正在检查空字符串,根据问题,我认为 nxt's 是最好的。接受的答案应该是使用 ===,如果 str 为空/未定义,您将得到经典的 Uncaught ReferenceError。
  • 这个答案是错误的,因为即使变量strnull,而nullobject 类型,而不是string,条件也是真实的。
【解决方案2】:

我检查长度。

if (str.length == 0) {
}

【讨论】:

  • 我有点迂腐,但if (!str || str.length === 0) 会更好。 (请注意 3 个等号。)不过对 @Dustin +1。
  • 如果您在字符串中添加空格,length 会计算空格,因此使用length 我们无法确定字符串是否为空。
  • @evolquez 空间与空不同,null 也是如此。空格是一个字符,所以它不能被视为""。 OP正在询问空字符串,我认为这个解决方案效果很好。
  • @ChrisNash 我理解为什么=== 通常更好,但是对于这种特定情况,我找不到str.length 由于类型转换而为零的原因。您是否将其用作惯例,或者是否有示例可以得到意想不到的结果?
  • 别忘了修剪if (!str || str.trim().length === 0)
【解决方案3】:

如果您想知道它是否为空字符串,请使用 === 而不是 ==。

if(variable === "") {
}

这是因为 === 只有在两边的值是相同类型时才会返回 true,在本例中是字符串。

例如: (false == "") 将返回 true,并且 (false === "") 将返回 false。

【讨论】:

    【解决方案4】:

    这应该可行:

    if (variable === "") {
    
    }
    

    【讨论】:

      【解决方案5】:
      if (value == "") {
        // it is empty
      }
      

      【讨论】:

      • 如果 value 真的是一个字符串,那么这是正确的,但它也会返回 true,如果 value = false 或 0 或 null。改用 ===。
      • @Residuum:问题是“如何检查字符串是否为空?”
      • @Gumbo:在我看来,在所有情况下都有效的答案比提供最低限度的答案要好,所以我同意 Residuum。对于初学者来说,这样的事情尤其重要。
      • @Gumbo:正如问题所暗示的,提问者没有 Javascript 经验。由于 Javascript 不是一种强类型语言,因此不明确检查类型也是常见的错误来源。去过那里,做到了。
      猜你喜欢
      • 2011-11-25
      • 2012-03-23
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多