このツールとは?
括弧チェッカーはテキストを1文字ずつスキャンし、すべての開き括弧 ( [ { をスタックで追跡し、次に現れる閉じ括弧 ) ] } と照合します。閉じ括弧が直前の未閉鎖の開き括弧と一致しない場合、開き括弧が最後まで閉じられない場合、または閉じるべき対象がないのに閉じ括弧が現れた場合、それぞれ正確な位置とともに問題として報告されます。
これは単純なスキャン方式のチェックであり、完全な言語パーサーではありません——貼り付けた内容がJavaScript、Python、JSON、あるいは単なる文章であっても同じ方法で処理されるため、括弧を使うあらゆる言語・フォーマットで利用できます。
なぜこれを使うのか?
- 500行のPythonスクリプトを実行したら「SyntaxError: unexpected EOF while parsing」とだけ表示され、どこが原因かわからないとき、貼り付けるだけで未閉鎖の括弧の正確な行と列がわかります。
- 手書きで書いたJSON設定ファイルをデプロイ前にコピー&ペーストしたとき、波かっこの数がなんとなく合っていない気がして不安なとき、チェックを一回かけるだけで安心してデプロイできます。
- 長い数式や統計モデルのコードで、丸かっこの深いネストのどこかで1つ足りないとエディタが警告してくるが、目視では該当箇所が見つからないとき。
- 同僚から共有されたコードスニペットをレビューしているとき、コピー&ペーストの過程で末尾の閉じ括弧が重複して残ってしまったのを見つけたいとき。
- 正規表現や設定ファイルなど、プログラミング言語のパーサーでは検出しにくい半端なテキストの中で、括弧の対応関係だけを素早く確認したいとき。
- 社内システムの機密コードを扱っていても、貼り付けた内容はブラウザ内でのみ処理されるため、外部のリンターサービスにコードを送る必要がありません。
使い方
- コードまたはテキストを入力ボックスに貼り付けます。
- 「括弧をチェック」をクリックします。
- 行番号・列番号付きの問題リストを確認するか、すべて一致しているという確認メッセージを確認します。
例
入力
function foo() {
return [1, 2, (3];
}出力
括弧の型が不一致:2行目18列目の ];括弧の型が不一致:3行目1列目の };未閉鎖の開き括弧:1行目17列目の {2行目の ] は15列目で開いた ( を閉じるはずでしたが、それより前の [ を閉じてしまっています——これはまさに、長いファイルで目視では見逃しやすいバグ(型の異なる閉じ括弧)の典型例です。
よくある使い方
- JavaScript、JSON、Pythonでの「Unexpected token」や「Unexpected end of input」エラーを、ファイル全体を丹念に読み返すことなくデバッグする。
- 手書きのJSONスニペットを設定ファイルに貼り付ける前に、余分または不足している波かっこがないか確認する。
- 長い数式や計算式の中で入れ子になった丸かっこの正しさを検証する。
- コードレビュー中に、コピー&ペースト編集の結果うっかり残ってしまった括弧を見つける。
3種類のエラーの見分け方
結果に表示されるエラーメッセージは3パターンに分類されます。それぞれ原因が異なるため、表の内容を参考に該当箇所を探すと修正が早くなります。
| エラーの種類 | 意味 | よくある原因 |
|---|---|---|
| 未閉鎖の開き括弧 | 開き括弧がテキストの終わりまで一度も閉じられていない | 関数やオブジェクトの末尾に閉じ括弧を書き忘れた |
| 未対応の閉じ括弧 | 対応する開き括弧がないまま閉じ括弧が出現した | コピー&ペーストで開き括弧だけ消してしまった |
| 括弧の型が不一致 | 閉じ括弧はあるが、直近に開いた括弧と種類が異なる | [ を書いたつもりが ) や } で閉じてしまった |
よくある質問
このツールは引用符やタグもチェックしますか、それとも括弧だけですか?
3種類の括弧ペアのみです:丸かっこ ( )、角かっこ [ ]、波かっこ { }。引用符やHTML/XMLタグは追跡されません。
3種類の問題タイプの違いは何ですか?
「未閉鎖の開き括弧」は、テキストの終わりまでに開き括弧が一度も閉じられなかったことを意味します。「未対応の閉じ括弧」は、対応する開き括弧がないまま閉じ括弧が現れたことを意味します。「括弧の型が不一致」は、閉じ括弧は現れたものの、直近に開かれた括弧とは異なる型であることを意味します——例えば [ を ) で閉じるケースです。
文字列やコメント内の括弧をカウントしないよう理解していますか?
いいえ——これは単純な文字スキャンであり、言語を理解するパーサーではないため、文字列リテラルやコメントについては認識しません。引用符で囲まれた文字列やコメント内の括弧文字も、そのままカウントされます。実際のソースファイルで完全に正確な結果を得るには、事前に文字列やコメントを取り除くか、エディタに組み込まれた構文認識型の括弧マッチング機能を使ってください。
私のコードはどこかにアップロードされますか?
されません。チェックはブラウザ内のローカルJavaScriptとして実行され、サーバーには何も送信されません。
全角括弧(「」や()など)もチェックできますか?
いいえ。このツールが対象とするのは半角の ( ) [ ] { } のみです。日本語の全角括弧「」『』()などは文字として認識されず、対応関係のチェック対象にはなりません。日本語混じりのコードやテキストで半角括弧の対応だけを確認したい場合でも、全角括弧の存在は結果に影響しません。
エラーが複数表示された場合、どれから直せばいいですか?
基本的には、結果リストの一番上(テキストの先頭に近い方)から順に直すのがおすすめです。最初の不一致を直すと、それより後の「型の不一致」エラーが連鎖的に解消されることがよくあります。
Markdownのリンク記法([text](url))でも正しく動きますか?
はい。角かっこと丸かっこの組み合わせであるMarkdownのリンク記法も、通常のネストとして正しく解析されます。ただし文字列やコメントの区別がないのと同様に、Markdown特有の構文を理解しているわけではなく、あくまで文字としての括弧の対応関係を見ているだけです。
貼り付けたテキストに構文エラー以外の問題があっても検出できますか?
いいえ、このツールは括弧の対応関係のみを検証します。変数名のスペルミスや、型エラー、ロジックの誤りなど、括弧に関係しない構文・意味的な問題は検出対象外です。それらのチェックには、対象言語専用のリンターやコンパイラを使用してください。