¿Cuál es la mejor manera de probar una cadena vacía con jquery listo para usar?

Resuelto Martin asked hace 15 años • 10 respuestas

¿Cuál es la mejor manera de probar una cadena vacía con jquery listo para usar, es decir, sin complementos? Probé esto .

Pero no funcionó al menos desde el primer momento. Sería bueno usar algo que esté integrado.

no quisiera repetir

if (a == null || a=='')

if (isempty(a)) en todas partes si hubiera alguno disponible.

Martin avatar Nov 28 '09 17:11 Martin
Aceptado
if (!a) {
  // is emtpy
}

Para ignorar los espacios en blanco de las cadenas:

if (!a.trim()) {
    // is empty or whitespace
}

Si necesita soporte heredado (IE8-) para trim(), utilice $.trimo un polyfill .

David Hellsing avatar Nov 28 '2009 11:11 David Hellsing

El enlace que proporcionó parece intentar algo diferente a la prueba que intenta evitar repetir.

if (a == null || a=='')

prueba si la cadena es una cadena vacía o nula. El artículo al que vinculó prueba si la cadena consta completamente de espacios en blanco (o está vacía).

La prueba que describió puede reemplazarse por:

if (!a)

Porque en javascript, una cadena vacía y nula se evalúan como falsas en un contexto booleano.

SpoonMeiser avatar Nov 28 '2009 11:11 SpoonMeiser

Según la respuesta de David, personalmente me gusta comprobar primero si el objeto dado es una cadena. De lo contrario, llamar .trim()a un objeto que no existe generaría una excepción:

function isEmpty(value) {
  return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null;
}

Uso:

isEmpty(undefined); // true
isEmpty(null); // true
isEmpty(''); // true
isEmpty('foo'); // false
isEmpty(1); // false
isEmpty(0); // false
Timo Ernst avatar Nov 12 '2015 13:11 Timo Ernst

Compruebe si los datos son una cadena vacía (e ignore cualquier espacio en blanco) con jQuery:

function isBlank( data ) {
    return ( $.trim(data).length == 0 );
}
Sjoerd Linders avatar Sep 16 '2015 14:09 Sjoerd Linders