Wie kann ich in JavaScript nach einer leeren/undefinierten/null-Zeichenfolge suchen?

Lesezeit: 6 Minuten

Wie kann ich in JavaScript nach einer leerenundefiniertennull Zeichenfolge suchen
Casademora

Ich habe diese Frage gesehen, aber ich habe kein JavaScript-spezifisches Beispiel gesehen. Gibt es eine einfache string.Empty in JavaScript verfügbar, oder ist es nur eine Frage der Überprüfung ""?

  • Nur zu Ihrer Information, ich denke, die nützlichsten APIs für die String-Klasse sind bei Mozilla und Javascript-Kit. [elated.com](elated.com/articles/working-with-strings ) hat ein Tutorial zu allen Eigenschaften, Methoden, … von String. Bitte beachten Sie: Der Mozilla-Link wurde auf aktualisiert developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…

    – Gen T

    2. Oktober 2008 um 15:16 Uhr


  • Überprüfen Sie dies: stackoverflow.com/a/36491147/7026966

    – Himanshu Shekhar

    13. Mai 2019 um 10:58 Uhr

  • Es wäre sehr hilfreich, wenn die Anforderung klar spezifiziert wäre. Für welche Werte sollten ist leer Rückkehr wahr? Die Überprüfung auf “” folgert, dass es nur wahr zurückgeben sollte, wenn der Wert Typ Zeichenfolge und Länge 0 ist. Viele Antworten hier gehen davon aus, dass es auch für einige oder alle falschen Werte wahr zurückgeben sollte.

    – RobG

    16. Oktober 2019 um 12:47 Uhr

  • Str.länge > -1

    – Omar Bachsch

    31. Januar 2021 um 4:29 Uhr

  • Ich stimme @RobG voll und ganz zu, diese Frage ist schlecht definiert. Warum um alles in der Welt sollten Sie darüber nachdenken null oder undefined leer? Ein leerer String ist ein leerer String, ist es nicht null oder undefined

    – Flimmer

    11. August 2021 um 14:59 Uhr

Wie kann ich in JavaScript nach einer leerenundefiniertennull Zeichenfolge suchen
Jano González

Zum Prüfen, ob eine Variable ist falsch oder wenn das Längenattribut gleich Null ist (was für eine Zeichenfolge bedeutet, dass es leer ist), verwende ich:

function isEmpty(str) {
    return (!str || str.length === 0 );
}

(Beachten Sie, dass Strings nicht die einzigen Variablen mit a sind length Attribut, Arrays haben sie zum Beispiel auch.)

Um zu prüfen, ob eine Variable falsch ist oder ob der String nur Leerzeichen enthält oder leer ist, verwende ich:

function isBlank(str) {
    return (!str || /^\s*$/.test(str));
}

Wenn Du willst, kannst Du Monkey-Patch der String Prototyp so:

String.prototype.isEmpty = function() {
    // This doesn't work the same way as the isEmpty function used 
    // in the first example, it will return true for strings containing only whitespace
    return (this.length === 0 || !this.trim());
};
console.log("example".isEmpty());

Beachten Sie, dass das Monkey-Patching integrierter Typen umstritten ist, da es aus irgendeinem Grund Code beschädigen kann, der von der vorhandenen Struktur integrierter Typen abhängt.

  • warum 0 === str.length statt str.length === 0 ?

    – Vinzenz

    23. September 2013 um 8:11 Uhr


  • @Vincent Bedingungen werden oft so geschrieben if (variable == constant value) und wenn Sie ein ‘=’ vergessen, weisen Sie der Variablen den konstanten Wert zu, anstatt zu testen. Der Code funktioniert weiterhin, da Sie eine Variable in einem if zuweisen können. Eine sicherere Art, diese Bedingung zu schreiben, besteht also darin, den konstanten Wert und die Variable umzukehren. Auf diese Weise sehen Sie beim Testen Ihres Codes einen Fehler (ungültige linke Seite in der Zuweisung). Sie können auch etwas wie JSHint verwenden, um die Zuweisung in Bedingungen zu verbieten und gewarnt zu werden, wenn Sie eine schreiben.

    – grandouassou

    23. September 2013 um 9:58 Uhr

  • schade, dass /^\s*$/.test(str) ist nicht wirklich lesbar – vielleicht wäre es besser, Leerzeichen mit einfacherem Code oder Regex zu entfernen? siehe stackoverflow.com/questions/6623231/… und auch stackoverflow.com/questions/10800355/…

    – Adrien Be

    15. Juli 2014 um 11:33 Uhr

  • /^\s*$/.test(str) kann durch str.trim().length === 0 ersetzt werden

    – Schadenfreude

    19. Juni 2015 um 12:35 Uhr

  • @Vincent das wird auch “Yoda Conditions” genannt if blue is the sky. Sehen dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html

    – AZ.

    26. Januar 2016 um 0:12 Uhr

  • Gibt es einen Unterschied zwischen dem Verhalten von if(str) und if(!!str)?

    – Peter Olsen

    19. Dezember 2014 um 18:28 Uhr

  • @PeterOlson Wenn Sie versuchen, eine Variable als booleschen Wert zu speichern, der mehrere Zeichenfolgen auf Inhalt überprüft, sollten Sie dies tun var any = (!!str1 && !!str2 && !!str3) Behandlung, wenn dort auch eine Zahl steht

    – John Ruddell

    10. März 2015 um 23:00 Uhr


  • Das ist die Lösung, die ich immer verwende. !!str.trim() um sicherzustellen, dass der String nicht nur aus Leerzeichen besteht.

    – Dario Oddenino

    11. Februar 2016 um 10:56 Uhr


  • Nicht nicht sieht aus wie ein Hack, Boolean(str) ist viel besser lesbar und weniger “wtfish”.

    – Shinzu

    17. Oktober 2016 um 21:28 Uhr

  • Dies ist einfach nutzlos in einem ifwandelt es falsche Werte in um false und Wahrheitswerte zu true. EIN if Block wird entweder ausgeführt oder nicht, je nachdem, ob der Ausdruck wahr ist, es macht keinen Sinn, etwas hinzuzufügen !!

    – Oli Crt

    8. September 2020 um 9:03 Uhr


1646637312 64 Wie kann ich in JavaScript nach einer leerenundefiniertennull Zeichenfolge suchen
Ates Goral

Das nächste, was Sie erreichen können str.Empty (mit der Voraussetzung, dass str ein String ist) ist:

if (!str.length) { ...

  • Würde das nicht eine Ausnahme auslösen, wenn str null ist?

    – Bild Michael

    11. September 2018 um 13:50 Uhr

  • @PicMickael Ja! So würde str.Empty.

    – Ates Goral

    12. September 2018 um 3:25 Uhr

  • Beachten Sie, dass Strings nicht der einzige Variablentyp sind, der ein hat length Attribut. Arrays tun es auch.

    – Flimmer

    11. August 2021 um 15:15 Uhr

1646637313 799 Wie kann ich in JavaScript nach einer leerenundefiniertennull Zeichenfolge suchen
Sugendran

Wenn Sie sicherstellen müssen, dass die Zeichenfolge nicht nur ein Haufen leerer Leerzeichen ist (ich nehme an, dies dient der Formularvalidierung), müssen Sie die Leerzeichen ersetzen.

if(str.replace(/\s/g,"") == ""){
}

  • Würde das nicht eine Ausnahme auslösen, wenn str null ist?

    – Bild Michael

    11. September 2018 um 13:50 Uhr

  • @PicMickael Ja! So würde str.Empty.

    – Ates Goral

    12. September 2018 um 3:25 Uhr

  • Beachten Sie, dass Strings nicht der einzige Variablentyp sind, der ein hat length Attribut. Arrays tun es auch.

    – Flimmer

    11. August 2021 um 15:15 Uhr

1646637314 331 Wie kann ich in JavaScript nach einer leerenundefiniertennull Zeichenfolge suchen
Peter Mortensen

Ich benutze:

function empty(e) {
  switch (e) {
    case "":
    case 0:
    case "0":
    case null:
    case false:
    case typeof(e) == "undefined":
      return true;
    default:
      return false;
  }
}

empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
    return ""
})) // false

  • Diese Lösung ist sprachunabhängiger. Die einzige JavaScript-Funktion, auf die es sich stützt, ist typeof. Es ist also ein gutes Beispiel für eine Lösung, die Sie verwenden können, wenn Sie den Implementierungen in verschiedenen Browsern nicht vertrauen und keine Zeit haben, eine bessere Lösung zu finden. (IE, kein Internetzugang). Es ist so etwas wie ein Beweis. Nicht das sauberste, aber Sie können sicher sein, dass es funktioniert, ohne zu viel über JavaScript zu wissen.

    – Jeff Davis

    20. April 2012 um 13:11 Uhr


  • Ich würde sogar noch ein bisschen weiter gehen und es mit einem ===-Operator für den undefinierten Fall festnageln. Ansonsten ist es einfach die perfekte Antwort.

    – xarlymg89

    25. Januar 2018 um 10:06 Uhr

  • Die typeof in dem switch hat bei mir nicht funktioniert. Ich habe ein hinzugefügt if (typeof e == "undefined") testen und das geht. Warum?

    – Lukas

    17. April 2018 um 11:15 Uhr

  • @Lucas Weil dies ein Tippfehler oder ein Versehen war. Ihre Änderung ist der richtige Ansatz. (Das Original bezieht sich auf den Kontext der leeren Funktion, nicht auf den e-Parameter, den die Funktion überprüfen soll.)

    – beeThree

    25. Februar 2020 um 3:01 Uhr

  • Könnten wir verwenden case undefined: anstatt case typeof(e) == "undefined":?

    – Boris J.

    27. März 2020 um 19:34 Uhr

963890cookie-checkWie kann ich in JavaScript nach einer leeren/undefinierten/null-Zeichenfolge suchen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy