CodeKitHub
Outils de texte

Vérificateur de parenthèses et crochets

Dernière mise à jour:

Collez du code ou du texte et cet outil analyse chaque paire ( ) [ ] { }, en signalant exactement quelles parenthèses sont non fermées, non ouvertes, ou mal appariées — avec le numéro de ligne et de colonne de chaque problème.

En quoi consiste cet outil ?

Un vérificateur de parenthèses analyse le texte caractère par caractère, en suivant chaque parenthèse ouvrante ( [ { sur une pile et en l'associant à la prochaine parenthèse fermante ) ] } rencontrée. Si une parenthèse fermante ne correspond pas à la dernière parenthèse ouvrante non fermée, ou si une parenthèse ouvrante n'est jamais fermée, ou si une parenthèse fermante apparaît sans rien à fermer, c'est signalé comme un problème avec sa position exacte.

Il s'agit d'une simple vérification par balayage, pas d'un véritable analyseur de langage — cela fonctionne de la même façon que le contenu collé soit du JavaScript, du Python, du JSON, ou simplement de la prose, ce qui le rend utile pour tout langage ou format utilisant des parenthèses.

Pourquoi l'utiliser ?

  • Votre linter renvoie « Unexpected end of input » sans numéro de ligne, et parcourir un fichier de 400 lignes pour repérer une accolade manquante fait perdre dix minutes — collez-le ici et la ligne et la colonne exactes s'affichent instantanément.
  • Vous écrivez un JSON de configuration à la main à 23h et l'application refuse silencieusement de le charger sans message clair — passez-le dans le vérificateur avant de remettre en question chaque valeur du fichier.
  • Une regex ou une expression mathématique a six niveaux de parenthèses imbriquées et vous avez perdu le compte de celle qui n'est pas fermée — le vérificateur suit la pile à votre place, pas besoin de compter à l'œil.
  • Vous avez collé un bloc de code depuis un chat ou un forum et il ne compile pas — une vérification rapide indique si une parenthèse a sauté pendant le copier-coller avant d'aller plus loin.
  • Vous relisez le diff d'un collègue et l'indentation vous paraît bizarre — passer le bloc modifié dans le vérificateur confirme s'il s'agit d'un vrai déséquilibre de parenthèses ou juste d'une bizarrerie de formatage.

Mode d'emploi

  1. Collez votre code ou texte dans le champ de saisie.
  2. Cliquez sur Vérifier les parenthèses.
  3. Consultez la liste des problèmes, chacun avec son numéro de ligne et de colonne, ou obtenez une confirmation que tout correspond.

Exemple

Entrée

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

Résultat

Type de parenthèse incorrect : ] à la ligne 2, col 18 ; Type de parenthèse incorrect : } à la ligne 3, col 1 ; Parenthèse ouvrante non fermée : { à la ligne 1, col 17

Le ] de la ligne 2 était censé fermer le ( ouvert à la colonne 15, pas le [ précédent — c'est exactement le genre de bug (une parenthèse fermante du mauvais type) facile à manquer à l'œil dans un long fichier.

Utilisations courantes

  • Déboguer une erreur « Unexpected token » ou « Unexpected end of input » en JavaScript, JSON ou Python sans relire attentivement tout le fichier.
  • Vérifier un extrait JSON écrit à la main pour repérer une accolade en trop ou manquante avant de le coller dans un fichier de configuration.
  • Vérifier les parenthèses imbriquées dans une longue expression mathématique ou formule.
  • Repérer une parenthèse accidentelle laissée par une modification copier-coller lors d'une revue de code.

Types de parenthèses et l'erreur que chacun déclenche

Le vérificateur ne suit que trois types de paires. Savoir quel libellé d'erreur correspond à quel type de faute permet d'agir plus vite sur le rapport.

Paire de parenthèsesUsage courantErreur typique produite
( )Appels de fonction, groupement d'expressions, formules mathématiquesParenthèse ouvrante non fermée quand une ) manque après une longue liste d'arguments
[ ]Tableaux, indexation de listes, classes de caractères regexType de parenthèse incorrect quand un ] est utilisé par erreur pour fermer un { ou un (
{ }Objets, blocs de code, corps de fonctionParenthèse ouvrante non fermée en fin de fichier quand une } est oubliée après un bloc imbriqué

Foire aux questions

Cela vérifie-t-il aussi les guillemets ou les balises, ou seulement les parenthèses ?

Seulement les trois paires de parenthèses : parenthèses ( ), crochets [ ], et accolades { }. Les guillemets et les balises HTML/XML ne sont pas suivis.

Quelle est la différence entre les trois types de problèmes ?

« Parenthèse ouvrante non fermée » signifie qu'une parenthèse ouvrante n'a jamais été fermée avant la fin du texte. « Parenthèse fermante non appariée » signifie qu'une parenthèse fermante est apparue sans parenthèse ouvrante correspondante avant elle. « Type de parenthèse incorrect » signifie qu'une parenthèse fermante est apparue, mais qu'elle est du mauvais type pour la parenthèse ouverte le plus récemment — par exemple fermer un [ avec un ).

Comprend-il que les parenthèses dans une chaîne ou un commentaire ne devraient pas compter ?

Non — c'est un simple balayage de caractères, pas un analyseur conscient du langage, donc il ne connaît rien aux littéraux de chaîne ou aux commentaires. Un caractère de parenthèse dans une chaîne entre guillemets ou un commentaire est quand même compté. Pour des résultats totalement précis sur de vrais fichiers source, retirez d'abord les chaînes/commentaires ou utilisez la correspondance de parenthèses consciente de la syntaxe intégrée à votre éditeur.

Mon code est-il envoyé quelque part ?

Non. La vérification s'exécute en JavaScript local dans votre navigateur ; rien n'est envoyé à un serveur.

Gère-t-il correctement les parenthèses profondément imbriquées, comme ((([{...}])))?

Oui — le vérificateur utilise une pile qui suit les parenthèses dans leur ordre d'ouverture, il fait donc correspondre correctement n'importe quel niveau d'imbrication. Aucune limite artificielle de profondeur ; la seule limite pratique est la mémoire de votre navigateur.

Que se passe-t-il si je colle du texte sans aucune parenthèse ?

L'outil indique que tout correspond, puisqu'il n'y a aucune parenthèse ouvrante ou fermante à signaler — un résultat vide signifie qu'aucun problème n'a été trouvé, pas que la vérification a échoué.

Peut-il me dire si j'ai trop de parenthèses fermantes par rapport aux ouvrantes ?

Oui, indirectement : les parenthèses fermantes en trop sans rien à apparier sont signalées comme « parenthèse fermante non appariée », tandis que celles ouvertes mais jamais fermées avant la fin du texte sont signalées comme « parenthèse ouvrante non fermée » — vous savez donc de quel côté se situe le déséquilibre.

Fonctionne-t-il sur du code minifié où tout est sur une seule ligne ?

Oui — l'analyse fonctionne caractère par caractère indépendamment des sauts de ligne, même si dans ce cas le numéro de colonne devient plus utile que le numéro de ligne, le code minifié étant généralement une seule très longue ligne.

Est-ce un remplacement pour la correspondance de parenthèses de mon éditeur de code ?

Pas exactement — la correspondance de l'éditeur est généralement consciente du langage et surligne les paires au fur et à mesure de la frappe, alors que cet outil est une analyse ponctuelle exécutée sur du texte collé, utile quand vous n'avez pas le fichier ouvert dans un éditeur ou voulez un rapport en texte brut de tous les problèmes à la fois.

Outils associés