用开箱即用的jQuery测试空字符串的最佳方法是什么?

2020/10/12 10:21 · javascript ·  · 0评论

用开箱即用的即没有插件测试空字符串的最佳方法是什么?我试过

但这至少是开箱即用的。使用内置的东西会很好。

我不想重复

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

如果有的if (isempty(a)) 话,到处都是

if (!a) {
  // is emtpy
}

要忽略字符串的空格:

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

如果您需要传统支持(IE8-)的trim(),使用$.trim填充工具

您提供的链接似乎在尝试与尝试避免重复的测试有所不同。

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

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

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

if (!a)

因为在javascript中,空字符串和null都在布尔值上下文中均得出false。

根据David的回答,我个人想先检查给定的对象是否为字符串。否则,调用.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

要检查所有“空”,例如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

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

function isBlank( data ) {
    return ( $.trim(data).length == 0 );
}
if(!my_string){ 
// stuff 
}

if(my_string !== "")

如果您想接受null但拒绝为空

编辑:哇,忘了你的条件是,如果它是空的

尝试在浏览器控制台或node.js副本中执行此操作。

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

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

因此,一个简单的分支构造就足以满足测试要求。

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

由于您还可以输入数字以及固定类型的字符串,因此答案实际上应该是:

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

尝试这个

if(!a || a.length === 0)
if((a.trim()=="")||(a=="")||(a==null))
{
    //empty condition
}
else
{
    //working condition
}
本文地址:http://javascript.askforanswer.com/yongkaixiangjiyongdejqueryceshikongzifuchuandezuijiafangfashishenme.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!