empty attribute javascript jquery

javascript - attribute - ¿Cuál es la mejor manera de probar una cadena vacía con jquery-out-of-the-box?



jquery empty string (10)

Basado en la respuesta de David, personalmente me gusta verificar primero el objeto dado si es una cadena. De lo contrario, llamar a .trim() en un objeto no existente 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

¿Cuál es la mejor manera de probar una cadena vacía con jquery-out-of-the-box, es decir, sin complementos? Intenté this .

Pero no funcionó al menos fuera de la caja. Sería bueno usar algo que está incorporado.

No me gustaria repetir

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

en todas partes si algo if (isempty(a)) estaría disponible.


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


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

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

comprueba si la cadena es una cadena vacía o nula. El artículo que vinculó a las pruebas si la cadena consiste completamente en espacios en blanco (o está vacío).

La prueba que describiste puede ser reemplazada por:

if (!a)

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


Intente ejecutar esto en la consola de su navegador o en la respuesta de node.js.

var string = '' ''; string ? true : false; //-> true string = ''''; string ? true : false; //-> false

Por lo tanto, una construcción de ramificación simple será suficiente para la prueba.

if(string) { // string is not empty }


Mientras tanto, podemos tener una función que verifique todos los ''vacíos'' como null, undefined, '''', '''', {}, [] . Así que acabo de escribir esto.

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; } }

Casos de uso y resultados.

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


Prueba esto

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


Ya que también puedes ingresar números, así como cadenas de tipo fijo, la respuesta debería ser:

function isBlank(value) { return $.trim(value); }


if (!a) { // is emtpy }

Para ignorar el espacio en blanco de las cadenas:

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

Si necesita soporte heredado (IE8-) para trim() , use $.trim o un polyfill .


if(!my_string){ // stuff }

y

if(my_string !== "")

Si quieres aceptar nulo pero rechazar vacío.

EDIT: woops, olvidé tu condición es si está vacío


if((a.trim()=="")||(a=="")||(a==null)) { //empty condition } else { //working condition }