How can I check for an empty/undefined/null string in JavaScript?

ID : 137

viewed : 128

Tags : javascriptnullis-emptyjavascript





Top 5 Answer for How can I check for an empty/undefined/null string in JavaScript?

vote vote

98

If you just want to check whether there's a truthy value, you can do:

if (strValue) {     //do something } 

If you need to check specifically for an empty string over null, I would think checking against "" is your best bet, using the === operator (so that you know that it is, in fact, a string you're comparing against).

if (strValue === "") {     //... } 
vote vote

81

For checking if a variable is falsey or if it has length attribute equal to zero (which for a string, means it is empty), I use:

function isEmpty(str) {     return (!str || str.length === 0 ); } 

(Note that strings aren't the only variables with a length attribute, arrays have them as well, for example.)

For checking if a variable is falsey or if the string only contains whitespace or is empty, I use:

function isBlank(str) {     return (!str || /^\s*$/.test(str)); } 

If you want, you can monkey-patch the String prototype like this:

String.prototype.isEmpty = function() {     // This doesn't work the same way as the isEmpty function used      // in the first example, it will return true for strings containing only whitespace     return (this.length === 0 || !this.trim()); }; console.log("example".isEmpty()); 

Note that monkey-patching built-in types is controversial, as it can break code that depends on the existing structure of built-in types, for whatever reason.

vote vote

70

All the previous answers are good, but this will be even better. Use dual NOT operators (!!):

if (!!str) {     // Some code here } 

Or use type casting:

if (Boolean(str)) {     // Code here } 

Both do the same function. Typecast the variable to Boolean, where str is a variable.

  • It returns false for null, undefined, 0, 000, "", false.

  • It returns true for all string values other than the empty string (including strings like "0" and " ")

vote vote

60

The closest thing you can get to str.Empty (with the precondition that str is a String) is:

if (!str.length) { ... 
vote vote

50

If you need to make sure that the string is not just a bunch of empty spaces (I'm assuming this is for form validation) you need to do a replace on the spaces.

if(str.replace(/\s/g,"") == ""){ } 

Top 3 video Explaining How can I check for an empty/undefined/null string in JavaScript?







Related QUESTION?