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