CodeKitHub
Text-Tools

Klammern- und Runde-Klammern-Prüfer

Zuletzt aktualisiert:

Code oder Text einfügen — dieses Tool scannt jedes ( )-, [ ]- und { }-Paar und meldet genau, welche Klammern nicht geschlossen, nicht geöffnet oder falsch gepaart sind — mit Zeilen- und Spaltennummer jedes Problems.

Was ist dieses Tool?

Ein Klammern-Prüfer scannt Text Zeichen für Zeichen, verfolgt jede öffnende Klammer ( [ { auf einem Stack und gleicht sie mit der nächsten schließenden Klammer ) ] } ab, auf die er trifft. Wenn eine schließende Klammer nicht zur zuletzt nicht geschlossenen öffnenden Klammer passt, oder eine öffnende Klammer nie geschlossen wird, oder eine schließende Klammer auftaucht, ohne dass etwas zu schließen wäre, wird das mit seiner genauen Position als Problem markiert.

Das ist eine reine Scan-Prüfung, kein vollständiger Sprachparser — sie funktioniert unabhängig davon, ob der eingefügte Inhalt JavaScript, Python, JSON oder einfach Fließtext ist, was sie über jede Sprache oder jedes Format mit Klammern hinweg nützlich macht.

Warum sollte man es nutzen?

  • Dein Linter wirft "Unexpected end of input" ohne Zeilenangabe, und eine 400-Zeilen-Datei nach einer fehlenden geschweiften Klammer zu durchsuchen kostet zehn Minuten — füge sie hier ein, und Zeile und Spalte erscheinen sofort.
  • Du schreibst um 23 Uhr eine JSON-Konfiguration von Hand, und die App weigert sich stillschweigend, sie zu laden, ohne klare Fehlermeldung — lass sie vor dem Zweifeln an jedem einzelnen Wert erst durch den Prüfer laufen.
  • Ein regulärer Ausdruck oder eine mathematische Formel hat sechs Ebenen verschachtelter Klammern, und du hast den Überblick verloren, welche nicht geschlossen ist — der Prüfer verfolgt den Stack für dich, du musst nicht mit dem Auge zählen.
  • Du hast einen Codeblock aus einem Chat oder Forenbeitrag eingefügt, und er kompiliert nicht — eine schnelle Prüfung zeigt, ob beim Kopieren eine Klammer verloren ging, bevor du weiter suchst.
  • Du prüfst den Diff eines Kollegen, und irgendetwas an der Einrückung wirkt seltsam — den geänderten Block durch den Prüfer laufen zu lassen bestätigt, ob es eine echte Klammer-Fehlpaarung ist oder nur eine Formatierungseigenart.

Anleitung

  1. Code oder Text in das Eingabefeld einfügen.
  2. Auf Klammern prüfen klicken.
  3. Die Liste der Probleme mit Zeilen- und Spaltennummer durchsehen, oder die Bestätigung erhalten, dass alles passt.

Beispiel

Eingabe

function foo() {
  return [1, 2, (3];
}

Ausgabe

Falscher Klammertyp: ] in Zeile 2, Spalte 18; Falscher Klammertyp: } in Zeile 3, Spalte 1; Nicht geschlossene öffnende Klammer: { in Zeile 1, Spalte 17

Die ] in Zeile 2 sollte eigentlich die in Spalte 15 geöffnete ( schließen, nicht das frühere [ — genau diese Art von Fehler (eine schließende Klammer des falschen Typs) übersieht man in einer langen Datei leicht mit bloßem Auge.

Häufige Anwendungsfälle

  • Einen „Unexpected token“- oder „Unexpected end of input“-Fehler in JavaScript, JSON oder Python debuggen, ohne die ganze Datei sorgfältig durchzulesen.
  • Ein handgeschriebenes JSON-Snippet vor dem Einfügen in eine Konfigurationsdatei auf eine überflüssige oder fehlende geschweifte Klammer prüfen.
  • Verschachtelte runde Klammern in einer langen mathematischen Formel überprüfen.
  • Eine versehentlich übrig gebliebene Klammer aus einer Copy-Paste-Bearbeitung bei einem Code-Review aufspüren.

Klammertypen und welcher Fehler jeweils entsteht

Der Prüfer verfolgt nur drei Paartypen. Zu wissen, welches Fehler-Label zu welcher Art von Fehler gehört, macht den Bericht schneller nutzbar.

KlammerpaarHäufige VerwendungTypischer erzeugter Fehler
( )Funktionsaufrufe, Gruppierung von Ausdrücken, mathematische FormelnNicht geschlossene öffnende Klammer, wenn nach einer langen Argumentliste eine ) fehlt
[ ]Arrays, Listenindizierung, Regex-ZeichenklassenFalscher Klammertyp, wenn eine ] versehentlich eine { oder ( schließt
{ }Objekte, Codeblöcke, FunktionsrümpfeNicht geschlossene öffnende Klammer am Dateiende, wenn nach einem verschachtelten Block eine } vergessen wird

Häufig gestellte Fragen

Prüft das auch Anführungszeichen oder Tags, oder nur Klammern?

Nur die drei Klammerpaare: runde Klammern ( ), eckige Klammern [ ], und geschweifte Klammern { }. Anführungszeichen und HTML/XML-Tags werden nicht verfolgt.

Was ist der Unterschied zwischen den drei Problemtypen?

„Nicht geschlossene öffnende Klammer“ bedeutet, dass eine öffnende Klammer bis zum Textende nie geschlossen wurde. „Nicht passende schließende Klammer“ bedeutet, dass eine schließende Klammer ohne vorherige entsprechende öffnende Klammer auftauchte. „Falscher Klammertyp“ bedeutet, dass eine schließende Klammer auftauchte, aber vom falschen Typ für die zuletzt geöffnete Klammer ist — z. B. eine [ mit einer ) zu schließen.

Versteht das Tool, dass Klammern in einem String oder Kommentar nicht zählen sollten?

Nein — das ist ein reiner Zeichenscan, kein sprachbewusster Parser, daher kennt es keine String-Literale oder Kommentare. Ein Klammerzeichen innerhalb eines Strings in Anführungszeichen oder eines Kommentars wird trotzdem gezählt. Für vollständig genaue Ergebnisse bei echten Quelldateien Strings/Kommentare vorher entfernen oder die eingebaute syntaxbewusste Klammer-Paarung deines Editors nutzen.

Wird mein Code irgendwohin hochgeladen?

Nein. Die Prüfung läuft als lokales JavaScript in deinem Browser; es wird nichts an einen Server gesendet.

Behandelt es tief verschachtelte Klammern korrekt, wie ((([{...}])))?

Ja — der Prüfer verwendet einen Stack, der Klammern in der Reihenfolge ihres Öffnens verfolgt, und paart daher beliebig tiefe Verschachtelungen korrekt. Es gibt kein künstliches Tiefenlimit; die einzige praktische Grenze ist der Speicher deines Browsers.

Was passiert, wenn ich Text ganz ohne Klammern einfüge?

Das Tool meldet, dass alles passt, da es keine öffnenden oder schließenden Klammern gibt, die als Problem markiert werden könnten — ein leeres Ergebnis bedeutet, dass keine Probleme gefunden wurden, nicht dass die Prüfung fehlgeschlagen ist.

Kann es mir sagen, ob ich zu viele schließende im Verhältnis zu öffnenden Klammern habe?

Ja, indirekt: überzählige schließende Klammern ohne passendes Gegenstück werden als "nicht passende schließende Klammer" gemeldet, während geöffnete, aber bis zum Textende nie geschlossene Klammern als "nicht geschlossene öffnende Klammer" gemeldet werden — so siehst du, auf welcher Seite das Ungleichgewicht liegt.

Funktioniert es bei minifiziertem Code, bei dem alles in einer Zeile steht?

Ja — der Scan arbeitet zeichenweise unabhängig von Zeilenumbrüchen, wobei in diesem Fall die gemeldete Spaltennummer nützlicher wird als die Zeilennummer, da minifizierter Code meist eine einzige, sehr lange Zeile ist.

Ersetzt das die Klammer-Zuordnung meines Code-Editors?

Nicht ganz — die Zuordnung im Editor ist meist sprachbewusst und hebt Paare beim Tippen hervor, während dieses Tool ein einmaliger Scan über eingefügten Text ist, nützlich, wenn du die Datei nicht in einem Editor offen hast oder einen reinen Textbericht aller Probleme auf einmal willst.

Verwandte Tools