127

我知道这是最基本的,但我对javascript还不熟悉,到处都找不到答案。

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

4
  • 4
    请参阅stackoverflow.com/questions/154059/… 评论 2010年3月4日17:42
  • 1
    空格算空吗?如果是这样,您可能需要一个regex来测试它。
    – 浮渣
    评论 2010年3月4日17:42
  • 来到这里补充说,有些人实际上应该检查为空白那将是variable.trim()===“”
    – 丹尼斯
    评论 2019年5月6日0:40
  • 如果(title.trim().length===0){//code},修剪字符串总是有意义的 评论 2019年7月24日6:20

5个答案5

重置为默认值
172

我检查长度。

如果(str.length==0){}
10
  • 55
    我有点迂腐,但如果(!str||str.length===0)更可取。(注意3等于符号。)+1到@Dustin。
    – 无畏者
    评论 2013年6月21日14:46
  • 13
    如果在字符串中添加空格,长度计算空格数,因此使用长度我们无法确定字符串是否为空。 评论 2013年8月28日12:21
  • 10
    @evolquez空间与空空间不同,null的情况也是如此。空格是一个字符,因此不能被视为"".OP询问有关空字符串的问题,我认为此解决方案很好。 评论 2014年7月4日4:57
  • @克里斯纳什我明白为什么===一般来说更好,但对于这个特定的案例,我找不到原因str.长度由于类型转换,将为零。你是用它作为惯例还是有一个例子可以让你得到意想不到的结果?
    – 用户
    评论 2014年9月12日5:05
  • 9
    别忘了修剪if(!str||str.trim().length===0) 评论 2019年2月27日7:54
60

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

if(变量===“”){}

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

例如:(false==“”)将返回true,而(false===““”)则返回false。

13

这应该有效:

if(变量===“”){}
0
13

但为了更好地检查:

if(str===null | | str===“”){//在此处输入代码}
4
  • 实际上,我打算在它关闭之前对其进行编辑:if(!str||str==“”){//在此处输入代码}有很多方法可以做到这一点,但如果String中包含“”,它就不一定是null。Empty是无效的。 评论 2010年3月4日18:35
  • 您从哪里得知JS中null变量的长度为0?您找到此信息的来源是什么? 评论 2011年11月7日7:07
  • 1
    如果str未定义怎么办?如果你在检查虚假信息,你最好的选择是if(!str)。但如果你正在检查空字符串,根据问题,我认为nxt是最好的。公认的答案应该是使用===,如果str为null/undefined,则会得到经典的Uncaught ReferenceError。 评论 2019年7月9日16:37
  • 这个答案是错误的,因为即使可变,条件也会为真字符串无效的,同时无效的是一个对象类型,不是一串. 评论 2020年8月19日17:04
-12
如果(值==“”){//它是空的}
4
  • 10
    如果value实际上是一个字符串,那么这是正确的,但如果value=false或0或null,它也将返回true。改为使用===。
    – 残留物
    评论 2010年3月4日17:43
  • 2
    @Residuum:问题是“如何检查字符串是否为空?”
    – 贡布
    评论 2010年3月4日17:44
  • @Gumbo:在我看来,一个在所有情况下都有效的答案比一个只提供最低限度的答案要好,所以我同意Residuum。对于初学者来说,这样的事情特别重要。 评论 2010年3月4日17:47
  • 2
    @Gumbo:正如问题所示,提问者没有Javascript方面的经验。由于Javascript不是强类型语言,因此不显式检查类型也是常见的错误源。去过那里,做过了。
    – 残留物
    评论 2010年3月4日17:48

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.