Jaki jest najlepszy sposób testowania pustego ciągu za pomocą jquery-out-of-the-box, tj. Bez wtyczek? Próbowałem tego .
Ale to nie działało przynajmniej po wyjęciu z pudełka. Byłoby miło użyć czegoś, co jest wbudowane.
Nie chciałbym powtarzać
if (a == null || a=='')
wszędzie, jeśli niektóre if (isempty(a))
będą dostępne.
javascript
jquery
Jaskółka oknówka
źródło
źródło
Odpowiedzi:
Aby zignorować białe znaki dla ciągów:
Jeśli potrzebujesz starszej obsługi (IE8-)
trim()
, użyj$.trim
lub wypełnienia .źródło
a
„” lub dowolną inną wartość falsy (null, false, undefined, 0, NaN).if (!$.trim(a))
if (!a.trim())
jest trochę niebezpieczne? Co jeślia
jest niezdefiniowany lub zerowy?Podany link wydaje się próbować czegoś innego niż test, którego próbujesz uniknąć.
sprawdza, czy ciąg jest pustym ciągiem lub jest pusty. Artykuł, który łączysz z testami, jeśli ciąg składa się wyłącznie z białych znaków (lub jest pusty).
Opisany test można zastąpić:
Ponieważ w javascript, zarówno pusty ciąg, jak i null, mają wartość false w kontekście logicznym.
źródło
if(!a)
czy to nie zawiedzie dla ciągu złożonego ze powiedzmy 4 spacji? ``0
jak pusty ciąg, ale nie"0"
. Zakładam, że o to ci chodziło? Można sobie wyobrazić, że jest to używane w sytuacji, gdy wiesz, żea
jest to albo łańcuch, albo zero, ale tak. Coś, o czym należy pamiętać.Na podstawie odpowiedzi Davida osobiście lubię najpierw sprawdzać dany obiekt, czy w ogóle jest to ciąg znaków. W przeciwnym razie wywołanie
.trim()
nieistniejącego obiektu spowodowałoby wyjątek:Stosowanie:
źródło
Sprawdź, czy dane są pustym ciągiem (i zignoruj białe znaki) za pomocą jQuery:
źródło
Aby sprawdzić wszystkie „ puste ”, takie jak null, undefined, „”, „”, {}, [] .
Zastosuj przypadki i wyniki.
źródło
i
jeśli chcesz zaakceptować null, ale odrzucić pusty
EDYCJA: woops, zapomniałem, że twój stan jest, jeśli jest pusty
źródło
Spróbuj wykonać to w konsoli przeglądarki lub w replice node.js.
Dlatego do testu wystarczy prosta konstrukcja rozgałęziająca.
źródło
Ponieważ możesz także wprowadzać liczby, a także ciągi znaków o ustalonym typie, odpowiedź powinna w rzeczywistości brzmieć:
źródło
return !!$.trim(value);
Spróbuj tego
źródło
źródło
null
to sięa.trim()
nie powiedzie. To złe zamówienie, żeby to sprawdzić. A jeśli zmienisz kolejność, twoja odpowiedź nie zawiera niczego, co wcześniej nie było sugerowane.