¿Cuál es la mejor manera de probar una cadena vacía con jquery-out-of-the-box, es decir, sin complementos? Probé esto .
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 if (isempty(a))
hubiera alguna disponible.
javascript
jquery
Martín
fuente
fuente
Respuestas:
Para ignorar el espacio en blanco para las cadenas:
Si necesita soporte heredado (IE8-) para
trim()
, use$.trim
o un polyfill .fuente
a
es "" o cualquier otro valor falso (nulo, falso, indefinido, 0, NaN).if (!$.trim(a))
if (!a.trim())
un poco peligroso? ¿Qué pasa sia
es indefinido o nulo?El enlace que proporcionó parece estar intentando algo diferente a la prueba que está tratando de evitar repetir.
prueba si la cadena es una cadena vacía o nula. El artículo que vinculó a las pruebas si la cadena se compone completamente de espacios en blanco (o está vacía).
La prueba que describió se puede reemplazar por:
Porque en javascript, una cadena vacía y nula, ambas se evalúan como falsas en un contexto booleano.
fuente
if(!a)
¿No fallará para una cadena que consiste en decir 4 espacios? ``0
como una cadena vacía, pero no"0"
. Supongo que eso es lo que querías decir? Es concebible que esto se esté utilizando en una situación en la que sabes quea
es una cadena o nula, pero sí. Algo a tener en cuenta.Según la respuesta de David, personalmente me gusta comprobar primero el objeto dado si es una cadena. De lo contrario, invocar
.trim()
un objeto no existente generaría una excepción:Uso:
fuente
Compruebe si los datos son una cadena vacía (e ignore cualquier espacio en blanco) con jQuery:
fuente
Para comprobar todos los 'vacíos' como nulo, indefinido, '', '', {}, [] .
Casos de uso y resultados.
fuente
y
si quiere aceptar nulo pero rechazar vacío
EDITAR: woops, olvidé tu condición si está vacía
fuente
Intente ejecutar esto en la consola de su navegador o en una respuesta node.js.
Por lo tanto, una simple construcción de ramificación será suficiente para la prueba.
fuente
Dado que también puede ingresar números, así como cadenas de tipo fijo, la respuesta debería ser:
fuente
return !!$.trim(value);
Prueba esto
fuente
fuente
null
entoncesa.trim()
fallaría. Este es un mal orden para verificar las cosas. Y si cambia el orden, su respuesta no proporciona nada, eso no se ha sugerido antes.