使用开箱即用的jquery(即没有插件)测试空字符串的最佳方法是什么?我试过这个。
但它至少没有开箱即用。使用内置的东西会很好。
我不想重复
if (a == null || a=='')
到处都有,如果有的 if (isempty(a))
话。
使用开箱即用的jquery(即没有插件)测试空字符串的最佳方法是什么?我试过这个。
但它至少没有开箱即用。使用内置的东西会很好。
我不想重复
if (a == null || a=='')
到处都有,如果有的 if (isempty(a))
话。
您提供的链接似乎正在尝试与您试图避免重复的测试不同的东西。
if (a == null || a=='')
测试字符串是否为空字符串或 null。您链接到的文章测试字符串是否完全由空格组成(或为空)。
您描述的测试可以替换为:
if (!a)
因为在 javascript 中,空字符串和 null 在布尔上下文中都计算为 false。
根据大卫的回答,我个人喜欢首先检查给定的对象是否是字符串。否则调用.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 );
}