C#String.IsNullOrEmpty Javascript等价物

时间:2011-04-21 16:23:58

标签: javascript jquery

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

目前我正在使用if(string === "" || string === null)语句来覆盖它,但我宁愿使用预定义的方法(我不断得到一些因某些原因而滑倒的实例)

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

9 个答案:

答案 0 :(得分:181)

你是在思考。空字符串和空字符串都是JavaScript中的假值。

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

Falsey:

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

答案 1 :(得分:12)

如果出于某种原因,您只想测试nullempty,您可以这样做:

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

注意:这也会在评论中提到未定义的@Raynos。

答案 2 :(得分:6)

答案 3 :(得分:5)

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

if (!string) {
  .
  .
  .

答案 4 :(得分:3)

你可以做到

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

这将检查string是否有未定义,空和空字符串。

答案 5 :(得分:1)

要清楚,if(!theString){//...}其中theString是一个未声明的变量将抛出一个未定义的错误,而不是找到它。另一方面,如果您有if(!window.theString){//...}var theString; if(!theString){//...},它将按预期工作。如果不声明变量(而不是属性或者根本没有设置),则需要使用:if(typeof theString === 'undefined'){//...}

我的偏好是创建一个包装它的原型函数。

答案 6 :(得分:1)

由于标记为正确的答案包含一个小错误,因此我最好尝试提出一个解决方案。我有两个选项,一个采用字符串,另一个采用字符串或数字,因为我假设很多人在javascript中混合字符串和数字。

步骤: - 如果对象为null,则为null或空字符串。 - 如果类型不是字符串(或数字),则其字符串值为null或为空。注意:我们也可能在此处抛出异常,具体取决于首选项。 - 如果修剪后的字符串值的长度小于1,则为空或空。

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;
}

答案 7 :(得分: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 :(
}

答案 8 :(得分:1)

您可以创建一个可在许多地方重复使用的效用方法,例如:

 function isNullOrEmpty(str){
    var returnValue = false;
    if (  !str
        || str == null
        || str === 'null'
        || str === ''
        || str === '{}'
        || str === 'undefined'
        || str.length === 0 ) {
        returnValue = true;
    }
    return returnValue;
  }