ForHosting KIT · Outils pour développeurs

Validateur de parenthèses équilibrées

Le validateur de parenthèses équilibrées contrôle les parenthèses, crochets et accolades d’un code ou d’un texte en un seul parcours déterministe.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Il confirme que chaque signe ouvrant possède le bon signe fermant et que l’ordre d’imbrication est respecté. Si l’entrée est incorrecte, le résultat indique la première anomalie détectable, sa position comptée à partir de zéro, le caractère trouvé et celui qui était attendu. Cet outil convient aux contrôles manuels, aux éditeurs, aux scripts de build, aux exercices pédagogiques et aux chaînes de validation légères, sans analyseur propre à un langage.

Comprenez la portée du contrôle

Ce validateur traite les trois familles de délimiteurs les plus courantes dans le code source et les textes structurés : parenthèses, crochets et accolades. Pour qu’une entrée soit valide, chaque signe ouvrant doit être fermé par un signe de la même famille, et les fermetures doivent suivre l’ordre inverse des ouvertures. Ainsi, <code>({[]})</code> est équilibré puisque chaque paire intérieure se ferme avant son conteneur, tandis que <code>([)]</code> ne l’est pas : la parenthèse se ferme alors que le crochet reste ouvert. Les caractères autres que ces six signes n’influencent pas le résultat. Vous pouvez donc coller une fonction, un extrait de configuration, une expression mathématique, un passage en prose ou un exemple multiligne. Le contrôle est lexical et indépendant du langage : un signe placé dans une chaîne entre guillemets ou un commentaire est également compté. Cette règle prévisible fonctionne avec de nombreux langages, mais ne remplace pas un analyseur JavaScript, Python, JSON ou un compilateur lorsque les signes présents dans les chaînes et commentaires doivent être ignorés.

Interprétez les positions et le diagnostic

Lorsqu’un signe fermant ne correspond pas au dernier signe ouvert, la validation s’arrête immédiatement et signale cette fermeture comme première anomalie détectée. La réponse contient <code>balanced: false</code>, une <code>position</code> comptée à partir de zéro, le caractère <code>found</code> et le caractère <code>expected</code>. Dans une imbrication incorrecte telle que <code>{[}</code>, l’accolade fermante est signalée en position deux, car un crochet fermant était requis. La réponse fournit aussi la position du signe ouvrant qui détermine cette attente. Si une fermeture apparaît alors qu’aucune ouverture n’est disponible, la valeur attendue précise qu’un signe ouvrant était nécessaire. Une ouverture restée seule ne peut être reconnue qu’à la fin du parcours ; le résultat désigne alors le signe non fermé le plus récent et la fermeture requise. L’indexation des chaînes JavaScript est utilisée : les positions sont donc des décalages en unités de code UTF-16. Pour du code ASCII ordinaire, elles correspondent aux positions de caractères affichées par la plupart des éditeurs.

Intégrez-le à vos automatisations et revues

Pour un contrôle interactif, collez votre code ou votre texte dans l’exécuteur du navigateur, puis consultez la réponse structurée. L’API emploie exactement le même solveur déterministe : une automatisation reçoit donc la même décision et les mêmes champs de diagnostic qu’une exécution manuelle. Un hook de pré-commit peut refuser un extrait généré lorsque <code>balanced</code> vaut false, une chaîne documentaire peut repérer les exemples mal formés avant leur publication, et une application pédagogique peut exploiter le caractère attendu et la position exacte afin de fournir une aide ciblée. Une requête API coûte $0.002 ; aucun tarif variable par caractère n’est déclaré. Le temps de validation est linéaire, car chaque caractère n’est visité qu’une fois, tandis qu’une pile ne conserve que les ouvertures encore actives. Le validateur ne réécrit, ne répare, ne formate, n’exécute et n’évalue pas le contenu transmis. Associez ce signal structurel précis à un analyseur ou à un linter si vous devez aussi contrôler la grammaire, les chaînes, les commentaires ou d’autres erreurs syntaxiques.

Contrôlez le code généré avant l’enregistrement

Refusez un extrait généré si son imbrication est incomplète ou si une fermeture appartient à la mauvaise paire.

Donnez un retour précis aux apprenants

Affichez la position comptée à partir de zéro et le caractère attendu au lieu d’indiquer seulement que l’expression est incorrecte.

Validez les exemples de documentation

Analysez les extraits dans votre chaîne de publication et signalez les structures incorrectes avant leur lecture.

Quels caractères sont contrôlés ?

Le validateur contrôle les parenthèses (), les crochets [] et les accolades {}. Tous les autres caractères sont ignorés.

Les positions commencent-elles à zéro ?

Oui. La position zéro est la première unité de code UTF-16 de la chaîne, conformément à l’indexation JavaScript.

Les signes dans les chaînes ou commentaires sont-ils ignorés ?

Non. Ce contrôle lexical est indépendant du langage et compte chaque signe, quel que soit son emplacement.

Que se passe-t-il si une ouverture n’est jamais fermée ?

Après le parcours complet, le résultat identifie le signe non fermé le plus récent et le caractère nécessaire pour le fermer.

Quel est le prix d’une requête API ?

Chaque requête API coûte $0.002. L’exécuteur du navigateur réalise localement le même contrôle déterministe.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev/balanced-brackets

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/dev/balanced-brackets \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"function demo(items) { return items[0]; }"}'
{
  "text": "function demo(items) { return items[0]; }"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.balanced_brackets",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →