4026 Stimmen

Wie kann ich in JavaScript nach einer leeren/undefinierten/nullen Zeichenkette suchen?

Ich sah diese Frage , aber ich habe kein JavaScript-spezifisches Beispiel gesehen. Gibt es eine einfache string.Empty in JavaScript zur Verfügung, oder ist es nur eine Frage der Prüfung auf "" ?

5 Stimmen

Nur FYI, ich denke, die nützlichsten APIs für die Klasse String sind bei Mozilla y Javascript-Baukasten . [elated.com]( elated.com/articles/working-with-strings ) hat ein Tutorial über alle Eigenschaften, Methoden,... von String. Bitte beachten Sie: Der Mozilla-Link wurde aktualisiert zu developer.mozilla.org/de/JavaScript/Reference/Global_Objects/

0 Stimmen

Sehen Sie sich das an: stackoverflow.com/a/36491147/7026966

0 Stimmen

Str.länge > -1

43voto

cllpse Punkte 20838
var s; // undefined
var s = ""; // ""
s.length // 0

Es gibt nichts, was eine leere Zeichenkette in JavaScript darstellt. Führen Sie eine Prüfung gegen entweder length (wenn Sie wissen, dass die Variable immer eine Zeichenkette sein wird) oder gegen ""

0 Stimmen

Ich kann diesen Satz nicht verstehen: There's nothing representing an empty string in JavaScript. . Was ist mit "" nicht eine leere Zeichenkette dar?

33voto

Chris Noe Punkte 35043

Ich würde mir nicht zu viele Gedanken über die meisten effizient Methode. Verwenden Sie das, was für Ihre Absicht am klarsten ist. Für mich ist das normalerweise strVar == "" .

Wie in dem Kommentar von Constantin Wenn strVar auf irgendeine Weise einen ganzzahligen Wert 0 enthalten könnte, dann wäre das in der Tat eine dieser Situationen, die die Absicht verdeutlichen.

13 Stimmen

Schlechte Idee. Sie werden true erhalten, wenn strVar versehentlich 0 zugewiesen wird.

5 Stimmen

Ich stimme Ihnen zu, dass es wichtiger ist, Ihre Absicht zu verdeutlichen als irgendwelche Mikrooptimierungen, die andere Methoden bringen könnten, aber die Verwendung der strenger Vergleichsoperator === wäre besser. Sie gibt nur true zurück, wenn strVar ist eine leere Zeichenkette.

0 Stimmen

Die Prüfung schlägt fehl, wenn sie undefiniert ist. Daher funktioniert if(str) besser

22voto

oem Punkte 211

Sie können auch mit regulären Ausdrücken arbeiten:

if((/^\s*$/).test(str)) { }

Prüft auf Zeichenketten, die entweder leer oder mit Leerzeichen gefüllt sind.

1 Stimmen

Es funktioniert, ist aber auch furchtbar teuer, was den Betrieb angeht. Gut, wenn Sie nur ein oder zwei Dinge überprüfen wollen, nicht eine große Menge.

7voto

jmc734 Punkte 305

Ich verwende normalerweise etwas wie:

if (str == "") {
     //Do Something
}
else {
     //Do Something Else
}

4 Stimmen

== Operator ist nicht strikt. Wenn also str == "" , str kann sein null , undefined , false , 0 , [] , usw..

7voto

Doug Punkte 95

Versuchen Sie dies

str.value.length == 0

6 Stimmen

"".value.length wird einen Fehler verursachen. Es sollte sein str.length === 0

2 Stimmen

Dies wirft ein TypeError Wenn str ist gleich undefined o null

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X