C#String.IsNullOrEmpty Javascript等效项


86

我想尝试进行等效String.IsNullOrEmpty(string)于javascript中C#的字符串调用。假设有一个简单的拨打电话的电话,我在网上看了一下,但找不到。

现在,我正在使用一条if(string === "" || string === null)语句来覆盖它,但是我宁愿使用一种预定义的方法(由于某些原因,我会不断丢失一些实例)

什么是最接近的javascript(或者jquery,如果有的话)调用是相等的?



3
@ DanielA.White参数是相同的,但是对于像我这样的C#开发人员,更可能会发现此问题(及其标题)
Daniele Armanasco 2013年

Answers:


211

你太想了。空字符串和空字符串都是JavaScript中的false值。

if(!theString) {
 alert("the string is null or empty");
}

虚假:

  • 空值
  • 未定义
  • 空字符串''
  • 数字0
  • 数量NaN

16
令人惊讶的是,它获得了如此多的票数。这个答案是不正确的。您自己说过,假值将为0。如果用户在字段中键入0,则这不是空字符串。空字符串实际上是“空”字符串。
虚伪之王

3
如果用户键入0,则值将是“ 0”字符串而不是数字0。因此,我猜它仍然是正确的。请发布您最好的解决方案,KingOfHypocrites?
Jonas T

2
KingOfHypocrites是正确的,因为字符串“ 0”将给出错误的结果:“ 0” ==假返回true!“ 0” ==假返回true
Martien de Jong

2
有用。虽然知道您的数据集。如果可能输入“ 0”或“ false”,则此解决方案可能并不总是有效。
涅文

12

如果出于任何原因,您只想测试nullempty,则可以执行以下操作:

function isNullOrEmpty( s ) 
{
    return ( s == null || s === "" );
}

注意:这也将捕获未定义为注释中提到的@Raynos。


可以优化为return (s == null || s === "")
Raynos 2011年

@Raynos-关于null,为什么用==而不是===?如果传入的对象未定义怎么办?undefined <> null,对吗?
Code Maverick

s == null抓住了两个nullundefined因为null == undefined
雷诺斯2011年

@Raynos-好的,我明白了,但是如果您想真正知道undefined或null,则需要使用===,对吗?
Code Maverick


5

如果您知道string不是数字,则可以使用:

if (!string) {
  .
  .
  .

字符串“ 0”为假,因此您不必检查字符串是否为数字。
JoJo

1
是的,字符串“ 0”是正确的,但是如果变量string实际上不是字符串,而是Number(零),string则将为false。如果我们知道它string是实际字符串还是null ,那将不是问题。
2011年

3

你可以做

if(!string)
{
  //...
}

这将检查string未定义的,null和空字符串。


1

需要明确的是,if(!theString){//...}theString是未声明的变量,将抛出未定义的错误,而不是将其设为true。另一方面,如果您有:if(!window.theString){//...}var theString; if(!theString){//...}它将按预期工作。如果可能未声明变量(而不是作为属性或只是未设置),则需要使用:if(typeof theString === 'undefined'){//...}

我更喜欢创建一个原型函数来为您包装它。


1

由于标记为正确的答案包含一个小错误,因此这是我最好的解决方案。我有两个选择,一个选择字符串,另一个选择字符串或数字,因为我假设许多人在javascript中混合使用字符串和数字。

步骤:-如果对象为null,则为null或空字符串。-如果类型不是字符串(或数字),则其字符串值为null或为空。注意:根据个人喜好,我们也可能在这里抛出异常。-如果修剪后的字符串值的长度小于1,则为null或为空。

var stringIsNullOrEmpty = function(theString)
{
    return theString == null || typeof theString != "string" || theString.trim().length < 1;
}

var stringableIsNullOrEmpty = function(theString)
{
    if(theString == null) return true;
    var type = typeof theString;
    if(type != "string" && type != "number") return true;
    return theString.toString().trim().length < 1;
}

1

你可以用逻辑说出来

假设您有一个变量名strVal,用于检查是否为null或为空

if (typeof (strVal) == 'string' && strVal.length > 0) 
{
// is has a value and it is not null  :)
}
else
{
//it is null or empty :(
}

1

您可以创建一个可以在许多地方重用的实用程序方法,例如:

 function isNullOrEmpty(str){
    var returnValue = false;
    if (  !str
        || str == null
        || str === 'null'
        || str === ''
        || str === '{}'
        || str === 'undefined'
        || str.length === 0 ) {
        returnValue = true;
    }
    return returnValue;
  }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.