Compter les caractères de tabulation
Un extrait de code de trois lignes dont une est indentée affiche 1 tabulation sur 1 ligne. Seules les vraies tabulations comptent, jamais quatre espaces ni une espace insécable : vous repérez ainsi une indentation mixte ou des séparateurs de tableur. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- function f() { return 1; }
- Tabulations
- 1
- Lignes avec tabulations
- 1
- Longueur
- 27
- Sans tabulations
- 26
Cet outil pour compter les caractères de tabulation mesure toute chaîne de texte non vide et indique combien de caractères de tabulation horizontale (Unicode U+0009, le familier backslash-t) apparaissent n’importe où dans le contenu. Développeurs, ingénieurs de données, éditeurs et enseignants utilisent chaque jour un décompte précis des tabulations pour repérer une indentation mixte avant un lint, pour vérifier qu’un collage depuis un tableur porte encore des séparateurs de champs, et pour bloquer des imports qui ne doivent pas contenir de caractères de contrôle invisibles. Le moteur est entièrement déterministe : il parcourt la chaîne une fois, ne compte que les vraies unités de code tabulation, et n’appelle jamais le réseau, n’échantillonne pas le hasard et ne dépend pas de l’horloge. Les espaces, espaces insécables et autres blancs Unicode sont ignorés dans le total des tabulations, afin qu’un guide de style qui interdit les tabulations puisse rejeter un échantillon en toute confiance.
Ce que signifie compter les tabulations et ce que contient la réponse
Compter les tabulations répond à une question produit ciblée : combien de caractères de tabulation horizontale se trouvent dans cette chaîne exacte, et sur combien de lignes apparaissent-ils. Ici, une tabulation désigne uniquement Unicode U+0009, le caractère unique produit par la touche Tab et par la séquence d’échappement backslash-t dans le code source. Quatre espaces ordinaires ne comptent jamais comme une tabulation, un espace insécable non plus, et une tabulation verticale ou un saut de page non plus.
Cette définition étroite maintient la métrique stable entre éditeurs, systèmes d’exploitation et langues, et correspond à ce que la plupart des guides de style entendent par « pas de tabulations ». Il n’y a pas d’option pour traiter quatre espaces comme une tabulation, ni de mode qui développe les tabulations en colonnes, ni de coercition silencieuse de null en succès vide.
Où les totaux de tabulations s’inscrivent en revue de code, import de données et enseignement
Les étudiants rencontrent le décompte de tabulations lorsqu’un atelier de style de code interdit l’indentation mixte, lorsqu’un exercice de saisie colle des échantillons TSV, ou lorsqu’un export de tableur doit être vérifié avant un script de notation. Les enseignants peuvent pré-générer des clés de correction qui montrent le total attendu de tabulations sans se fier à des macros bureautiques opaques qui développent ou masquent les caractères de contrôle différemment sur chaque machine.
Les équipes données et opérations mesurent des fragments de tickets bruyants, des lignes de journal et des dumps de type CSV lorsqu’un pipeline doit rejeter des fichiers qui contiennent encore des séparateurs tabulation après une migration espaces uniquement. Le support colle un extrait client pour confirmer si des tabulations invisibles cassent un analyseur. Associez-la à la conversion tabulations en espaces, à la suppression des blancs ou au comptage de caractères pour constituer un petit laboratoire d’aides texte gratuites et déterministes pour formulaires, préparation CMS et hygiène des données.
Cas d’usage
Audits d’indentation mixte
Comptez les tabulations dans un extrait de code avant lint ou formatage pour que les guides espaces seuls échouent les échantillons qui cachent encore des tabulations.
Contrôles de collage TSV et tableurs
Vérifiez combien de séparateurs de champs par tabulation restent dans des données tabulaires collées avant import, ETL ou scripts de notation.
Questions fréquentes
Combien coûte l’outil pour compter les caractères de tabulation ?
Il est gratuit dans votre navigateur sur cette page.
Quels caractères comptent comme tabulations ?
Uniquement le caractère de tabulation horizontale Unicode U+0009 (touche Tab / backslash-t). Les espaces, espaces insécables et autres blancs ne comptent pas comme tabulations.
Que se passe-t-il si le champ text est vide ?
Vous devez fournir une chaîne non vide ; les champs de formulaire vides ne deviennent pas des succès silencieux à zéro.
Cet outil convertit-il les tabulations en espaces ?
Non. Il ne compte que les tabulations horizontales. Utilisez un convertisseur dédié tabulations vers espaces si vous avez besoin d’une expansion à une largeur de tabulation fixe.
Le résultat est-il le même à chaque fois ?
Oui. Le décompte est une analyse de chaîne pure et déterministe, sans réseau, hasard ni dépendance d’horloge, donc une entrée identique produit toujours une sortie identique.
Outils associés
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/count-tabs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"function f() {\n\treturn 1;\n}"}'const res = await fetch("https://api.kit.forhosting.com/str/count-tabs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "function f() {\n\treturn 1;\n}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/count-tabs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "function f() {\n\treturn 1;\n}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/count-tabs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"function f() {\\n\\treturn 1;\\n}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"function f() {\n\treturn 1;\n}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/count-tabs", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "function f() {\n\treturn 1;\n}"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.count_tabs",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 100000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Une entrée vide est rejetée avec une erreur claire invalid_input pour qu’un champ de formulaire vide ne devienne pas un succès silencieux à zéro. Utilisez-le gratuitement dans le navigateur pour des audits rapides et des devoirs, ou appelez l’API à $0.002 par requête réussie lorsque vous avez besoin de décomptes reproductibles en CI, pipelines ou démonstrations pédagogiques.
Ce que signifie compter les tabulations et ce que contient la réponse
La réponse est volontairement petite et stable : text renvoie l’entrée pour auditer ce qui a été mesuré, tabs est le total entier d’unités de code U+0009, has_tabs vaut true lorsque ce total est supérieur à zéro, lines_with_tabs compte combien de lignes (découpées sur CR, LF ou CRLF) contiennent au moins une tabulation, length est la longueur totale de caractères de la chaîne, non_tabs est length moins tabs, et method est l’étiquette fixe count_tabs pour les journaux et les pipelines multi-outils. Le moteur construit des métriques entières complètes dans la longueur prise en charge ou rejette la requête avec invalid_input. Les cas rejetés comprennent un champ text manquant, une valeur null, une chaîne vide, des objets et tableaux qui ne sont pas du texte brut, et toute charge utile plus longue que le maximum de caractères documenté. Si vous devez développer des tabulations en espaces, supprimer tout blanc, ou compter chaque caractère y compris les espaces, utilisez ces outils dédiés ; cette page ne répond qu’aux totaux de tabulation horizontale, avec une sortie stable adaptée aux feuilles d’exercices, tests unitaires et consommateurs d’API qui ne doivent pas inventer de règles d’indentation.
Comment le champ text est lu et comment les décomptes restent reproductibles
La valeur doit être une chaîne non vide ; les nombres finis et les bigints sont d’abord convertis en chaîne, de sorte qu’un code produit saisi comme nombre produit encore une chaîne de chiffres stable qui, par définition, a zéro tabulation. Le décompte utilise un seul passage linéaire avec une égalité stricte contre le caractère tabulation — sans dictionnaire réseau, sans modèle d’apprentissage automatique et sans tables de locale. Le champ préféré est text, mais les alias input, string, value, content et s sont acceptés afin que chaînes de requête, tableurs et formulaires typés réutilisent le même contrat sans renommer les colonnes. Les booléens, objets simples et tableaux sont rejetés avec un message clair pour qu’un corps JSON erroné ne devienne pas le mot true ni un dump d’objet inutile. Une chaîne vide est toujours invalid_input : la promesse produit est de compter les tabulations dans le texte, non d’inventer un succès à zéro pour un envoi vide. La longueur est plafonnée à cent mille caractères pour qu’un collage débordant ne monopolise pas un Worker ; les charges plus longues échouent avec un message de limite explicite plutôt qu’une coupure silencieuse. Les lignes sont découpées selon une règle fixe CR, LF ou CRLF, de sorte qu’un fichier Windows et un fichier Unix rapportent le même lines_with_tabs pour le même contenu visuel. Associez l’exécution gratuite dans le navigateur de cette page à l’API payante lorsque vous avez besoin des mêmes totaux dans un pipeline automatisé sans livrer vos propres scanneurs.
Où les totaux de tabulations s’inscrivent en revue de code, import de données et enseignement
Sur cette page le travail s’exécute entièrement dans votre navigateur ; via l’API chaque décompte réussi coûte $0.002, la validation échouée n’est pas facturée et rien n’est stocké après la réponse. Cette séparation — exploration interactive gratuite et API payante identique — correspond au reste du catalogue tier-A du KIT et vous permet de passer d’une démo en classe à un pipeline automatisé sans changer le résultat numérique.
Cas d'intégration
Fixtures CI déterministes
Générez des totaux de tabulations reproductibles pour tests unitaires, fichiers golden et portes de pipeline qui ne doivent pas inventer de règles d’espaces blancs.