¿Cómo verifico una cadena vacía/indefinida/nula en JavaScript?

Resuelto casademora asked hace 16 años • 55 respuestas

¿Existe un string.Emptyen JavaScript o es solo un caso de verificarlo ""?

casademora avatar Oct 01 '08 00:10 casademora
Aceptado

Cadena vacía, indefinida, nula, ...

Para comprobar un valor veraz :

if (strValue) {
    // strValue was non-empty string, true, 42, Infinity, [], ...
}

Para comprobar si hay un valor falso :

if (!strValue) {
    // strValue was empty string, false, 0, null, undefined, ...
}

Cadena vacía (¡solo!)

Para verificar exactamente una cadena vacía, compare la igualdad estricta con ""el uso del ===operador :

if (strValue === "") {
    // strValue was empty string
}

Para verificar estrictamente si no hay una cadena vacía, use el !==operador :

if (strValue !== "") {
    // strValue was not an empty string
}
bdukes avatar Sep 30 '2008 17:09 bdukes

Para verificar si una variable es falsa o si tiene un atributo de longitud igual a cero (lo que para una cadena significa que está vacía), uso:

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

(Tenga en cuenta que las cadenas no son las únicas variables con un lengthatributo; las matrices también lo tienen, por ejemplo).

Como alternativa, puede utilizar las (no tan) nuevas funciones opcionales de encadenamiento y flecha para simplificar:

const isEmpty = (str) => (!str?.length);

Verificará la longitud y regresará undefineden caso de un valor nulo, sin arrojar un error. En el caso de un valor vacío, cero es falso y el resultado sigue siendo válido.

Para verificar si una variable es falsa o si la cadena solo contiene espacios en blanco o está vacía, uso:

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

Si lo deseas, puedes parchear el Stringprototipo de esta manera:

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());

Tenga en cuenta que los tipos integrados de parches de mono son controvertidos, ya que pueden romper el código que depende de la estructura existente de los tipos integrados, por cualquier motivo.

Jano González avatar Jul 16 '2010 01:07 Jano González

Todas las respuestas anteriores son buenas, pero esta será aún mejor. Utilice operadores NOT duales ( !!):

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

O utilice la conversión de tipos:

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

Ambos hacen la misma función. Encasille la variable a booleana, donde stres una variable.

  • Regresa falsepor null, undefined, 0, 000, "", false.

  • Devuelve truetodos los valores de cadena distintos de la cadena vacía (incluidas cadenas como "0"y " ")

karthick.sk avatar Mar 30 '2011 13:03 karthick.sk