用jquery-out-of-the-boxtesting空string的最佳方法是什么?

什么是最好的方式来testing一个空string与jQuery的开箱即用,即没有插件? 我试过这个 。

但是它至less不是现成的。 这将是很好的使用内置的东西。

我不想重复

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

到处都有if if (isempty(a))可用。

 if (!a) { // is emtpy } 

忽略string的空格:

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

如果您需要Legacy支持(IE8-) trim() ,请使用$.trim$.trim

你给的链接似乎正在尝试一些与你试图避免重复的testing不同的东西。

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

testingstring是否为空string或null。 链接到的文章testingstring是否完全由空白(或为空)组成。

您所描述的testing可以replace为:

 if (!a) 

因为在JavaScript中,一个空string和null,都在布尔上下文中计算为false。

根据大卫的回答,我个人喜欢首先检查给定的对象,如果它是一个string。 否则,在不存在的对象上调用.trim()会抛出一个exception:

 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 
 if(!my_string){ // stuff } 

 if(my_string !== "") 

如果你想接受null,但拒绝空的

编辑:woops,忘记你的条件是如果它是空的

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

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

因此,一个简单的分支结构就足以进行testing。

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

既然你也可以input数字和固定types的string,答案应该是:

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

用jQuery检查数据是否为空string(并忽略任何空格):

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

同时我们可以有一个函数来检查所有'空',如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 

尝试这个

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