使用jquery-out-of-the-box测试空字符串的最佳方法是什么,即没有插件?我试过了this。
但它至少没有开箱即用。使用内置的东西会很好。
我不想重复
if (a == null || a=='')
如果某些if (isempty(a))
可用,无处不在。
答案 0 :(得分:514)
if (!a) {
// is emtpy
}
忽略字符串的空格:
if (!a.trim()) {
// is empty or whitespace
}
答案 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
}