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(!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
}