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

问题描述 投票:2756回答:46

我看到了this question,但没有看到JavaScript特定的示例。 JavaScript中是否提供简单的string.Empty,还是仅检查""的一种情况?

javascript null is-empty
46个回答
3441
投票

如果您只想检查是否有任何价值,可以这样做

if (strValue) {
    //do something
}

[如果您需要专门检查null上的空字符串,我认为使用""来检查the === operator是最好的选择(这样您就可以知道它实际上是您要比较的字符串反对)。

===

33
投票

尝试:


27
投票

我不太担心最有效


20
投票

您也可以使用正则表达式:


19
投票

很多答案,还有很多不同的可能性!


17
投票
  1. 检查if (!str.length) {...}是否存在

16
投票

[此外,如果您将空格填充的字符串视为“空”。您可以使用此正则表达式进行测试:


14
投票

我通常使用这样的东西,


10
投票

我还没有注意到一个考虑到字符串中可能存在空字符的答案。例如,如果我们有一个空字符串:


10
投票

所有这些答案都很好。


10
投票

同时,我们可以使用一个函数来检查所有'空',例如null,undefined,'','',{},[]


1097
投票

用于检查字符串是否为空,空或未定义,我使用:

if (strValue === "") {
    //...
}

用于检查字符串是否为空,空或未定义,我使用:

function isEmpty(str) {
    return (!str || 0 === str.length);
}

用于检查字符串是否为空白或仅包含空格:

function isBlank(str) {
    return (!str || /^\s*$/.test(str));
}

10
投票

到目前为止,没有像string.empty这样的直接方法可以检查字符串是否为空。但是在您的代码中,您可以使用包装检查是否为空字符串,例如:


9
投票

如果您不仅需要检测空字符串,还需要检测空白字符串,我将在Goral的答案中添加:


8
投票

尝试一下


8
投票

您可以轻松地将其添加到JavaScript


8
投票

尝试一下:


8
投票

检查是否完全是空字符串:


7
投票

我使用组合,最快的检查是第一位。


7
投票

忽略空格字符串,您可以使用它来检查null,空和未定义的内容:


7
投票

我做了一些研究,如果将非字符串和非空/空值传递给测试器函数,会发生什么情况。众所周知,(0 ==“”)在javascript中为true,但由于0是一个值且不是空或null,因此您可能需要对其进行测试。


7
投票

没有String.prototype.IsNullOrEmpty = function (value) { ... } var myvar = null; if (1 == 2) { myvar = "OK"; } // could be set myvar.IsNullOrEmpty(); // throws error 方法,您必须检查类型和长度:


296
投票

以上所有都是好的,但这会更好。使用String.prototype.isEmpty = function() { return (this.length === 0 || !this.trim()); }; not not)运算符。

!!

或使用类型转换:

if(!!str){
    // some code here
}

两者都执行相同的功能,将变量转换为布尔值,其中if(Boolean(str)){ // code here } 是变量。为str返回false。返回字符串“ 0”和空格“”的null,undefined,0,000,"",false


7
投票

我在这里没有看到好的答案(至少不是适合我的答案)所以我决定回答自己:


103
投票

您可以得到的最接近true的东西(前提是str是字符串):

str.Empty

98
投票

如果需要确保字符串不只是一堆空白(我假设这是用于表单验证),则需要对这些空格进行替换。

if (!str.length) { ...

63
投票

我使用:

if(str.replace(/\s/g,"") == ""){
}

39
投票

您可以使用function empty(e) { switch (e) { case "": case 0: case "0": case null: case false: case typeof(e) == "undefined": return true; default: return false; } } empty(null) // true empty(0) // true empty(7) // false empty("") // true empty((function() { return "" })) // false :_.isEmpty(值)。

它涵盖了很多情况,例如lodash{}''null等。>

但是对于undefinedtrue类型,如NumberJavascript Primitive Data Types,它总是返回_.isEmpty(10)


35
投票

功能:


34
投票
function is_empty(x)
{
   return ( 
        (typeof x == 'undefined')
                    ||
        (x == null) 
                    ||
        (x == false)  //same as: !x
                    ||
        (x.length == 0)
                    ||
        (x == "")
                    ||
        (x.replace(/\s/g,"") == "")
                    ||
        (!/[^\s]/.test(x))
                    ||
        (/^\s*$/.test(x))
  );
}
© www.soinside.com 2019 - 2024. All rights reserved.