Was ist der beste Weg, um mit jquery-out-of-the-box, dh ohne Plugins, auf eine leere Zeichenfolge zu testen? Ich habe versucht , diese .
Aber es hat zumindest nicht sofort funktioniert. Es wäre schön, etwas zu verwenden, das eingebaut ist.
Ich würde es nicht gerne wiederholen
if (a == null || a=='')
überall, wenn einige if (isempty(a))
verfügbar wären.
javascript
jquery
Martin
quelle
quelle
Antworten:
So ignorieren Sie Leerzeichen für Zeichenfolgen:
Wenn Sie Legacy-Unterstützung (IE8-) für
trim()
, verwenden Sie$.trim
oder eine Polyfüllung .quelle
a
"" oder ein anderer falscher Wert (null, falsch, undefiniert, 0, NaN).if (!$.trim(a))
if (!a.trim())
ein bisschen gefährlich? Was ist, wenna
undefiniert oder null ist?Der Link, den Sie angegeben haben, scheint etwas anderes zu versuchen als der Test, den Sie vermeiden möchten.
Testet, ob die Zeichenfolge eine leere Zeichenfolge oder null ist. Der Artikel, den Sie mit Tests verknüpft haben, testet, ob die Zeichenfolge vollständig aus Leerzeichen besteht (oder leer ist).
Der von Ihnen beschriebene Test kann ersetzt werden durch:
Da in Javascript eine leere Zeichenfolge und null in einem booleschen Kontext als falsch ausgewertet werden.
quelle
if(!a)
Wird es nicht für eine Zeichenfolge fehlschlagen, die beispielsweise aus 4 Leerzeichen besteht? ``0
wie eine leere Zeichenfolge behandelt, aber nicht"0"
. Ich nehme an, das hast du gemeint? Es ist denkbar, dass dies in einer Situation verwendet wird, in der Sie wissen, dassa
es sich entweder um eine Zeichenfolge oder um null handelt, aber ja. Etwas zu beachten.Basierend auf Davids Antwort möchte ich persönlich das gegebene Objekt zuerst überprüfen, ob es überhaupt eine Zeichenfolge ist. Andernfalls würde das Aufrufen
.trim()
eines nicht vorhandenen Objekts eine Ausnahme auslösen:Verwendung:
quelle
Überprüfen Sie mit jQuery, ob Daten eine leere Zeichenfolge sind (und ignorieren Sie Leerzeichen):
quelle
Zum Überprüfen auf alle 'Leergut' wie null, undefiniert, '', '', {}, [] .
Anwendungsfälle und Ergebnisse.
quelle
und
Wenn Sie null akzeptieren möchten, aber leer ablehnen möchten
EDIT: woops, vergessen Sie Ihren Zustand ist, wenn es leer ist
quelle
Versuchen Sie, dies in Ihrer Browserkonsole oder in einer node.js-Antwort auszuführen.
Daher reicht für den Test ein einfaches Verzweigungskonstrukt aus.
quelle
Da Sie auch Zahlen sowie Zeichenfolgen mit festem Typ eingeben können, sollte die Antwort tatsächlich lauten:
quelle
return !!$.trim(value);
Versuche dies
quelle
quelle
null
danna.trim()
würde scheitern. Dies ist eine schlechte Reihenfolge, um Dinge zu überprüfen. Und wenn Sie die Reihenfolge ändern, enthält Ihre Antwort nichts, was zuvor nicht vorgeschlagen wurde.