使用jquery-out-of-the-box测试空字符串的最佳方法是什么?

时间:2009-11-28 10:59:24

标签: javascript jquery

使用jquery-out-of-the-box测试空字符串的最佳方法是什么,即没有插件?我试过了this

但它至少没有开箱即用。使用内置的东西会很好。

我不想重复

if (a == null || a=='')
如果某些if (isempty(a))可用,

无处不在。

10 个答案:

答案 0 :(得分:514)

if (!a) {
  // is emtpy
}

忽略字符串的空格:

if (!a.trim()) {
    // is empty or whitespace
}

如果您需要trim()的旧版支持(IE8-),请使用$.trimpolyfill

答案 1 :(得分:26)

您提供的链接似乎正在尝试与您试图避免重复的测试不同的内容。

if (a == null || a=='')

测试字符串是否为空字符串或null。您链接到的文章测试字符串是否完全由空格组成(或为空)。

您描述的测试可以替换为:

if (!a)

因为在javascript,空字符串和null中,两者都在布尔上下文中计算为false。

答案 2 :(得分:22)

基于David's answer我个人喜欢先检查给定的对象是否完全是字符串。否则在不存在的对象上调用.trim()将引发异常:

function isEmpty(value) {
  return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null;
}

用法:

isEmpty(undefined); // true
isEmpty(null); // true
isEmpty(''); // true
isEmpty('foo'); // false
isEmpty(1); // false
isEmpty(0); // false

答案 3 :(得分:4)

使用jQuery检查数据是否为空字符串(并忽略任何空格):

function isBlank( data ) {
    return ( $.trim(data).length == 0 );
}

答案 4 :(得分:3)

if(!my_string){ 
// stuff 
}

if(my_string !== "")

如果你想接受null但拒绝空

编辑:woops,忘了你的情况是否是空的

答案 5 :(得分:3)

与此同时,我们可以使用一个函数来检查所有'空虚',例如 null,undefined,'','',{},[] 。 所以我写了这篇文章。

var isEmpty = function(data) {
    if(typeof(data) === 'object'){
        if(JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]'){
            return true;
        }else if(!data){
            return true;
        }
        return false;
    }else if(typeof(data) === 'string'){
        if(!data.trim()){
            return true;
        }
        return false;
    }else if(typeof(data) === 'undefined'){
        return true;
    }else{
        return false;
    }
}

用例和结果。

console.log(isEmpty()); // true
console.log(isEmpty(null)); // true
console.log(isEmpty('')); // true
console.log(isEmpty('  ')); // true
console.log(isEmpty(undefined)); // true
console.log(isEmpty({})); // true
console.log(isEmpty([])); // true
console.log(isEmpty(0)); // false
console.log(isEmpty('Hey')); // false

答案 6 :(得分:2)

尝试在浏览器控制台或node.js repl。

中执行此操作
var string = ' ';
string ? true : false;
//-> true

string = '';
string ? true : false;
//-> false

因此,一个简单的分支构造就足以进行测试。

if(string) {
    // string is not empty
}

答案 7 :(得分:2)

既然你也可以输入数字和固定类型字符串,答案应该是:

function isBlank(value) {
  return $.trim(value);
}

答案 8 :(得分:-1)

试试这个

if(a=='null' || a=='')

答案 9 :(得分:-4)

if((a.trim()=="")||(a=="")||(a==null))
{
    //empty condition
}
else
{
    //working condition
}