What is the best way to test for an empty string with jquery-out-of-the-box, i.e. without plugins? I tried this.
But it did\'t work at least out-of-the-box. It woul
Try executing this in your browser console or in a node.js repl.
var string = ' ';
string ? true : false;
//-> true
string = '';
string ? true : false;
//-> false
Therefore, a simple branching construct will suffice for the test.
if(string) {
// string is not empty
}
if (!a) {
// is emtpy
}
To ignore white space for strings:
if (!a.trim()) {
// is empty or whitespace
}
If you need legacy support (IE8-) for trim()
, use $.trim or a polyfill.
if(!my_string){
// stuff
}
and
if(my_string !== "")
if you want to accept null but reject empty
EDIT: woops, forgot your condition is if it IS empty
Based on David's answer I personally like to check the given object first if it is a string at all. Otherwise calling .trim()
on a not existing object would throw an exception:
function isEmpty(value) {
return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null;
}
Usage:
isEmpty(undefined); // true
isEmpty(null); // true
isEmpty(''); // true
isEmpty('foo'); // false
isEmpty(1); // false
isEmpty(0); // false