Contare i caratteri di tabulazione
Un frammento di codice di tre righe con una riga rientrata mostra 1 tabulazione su 1 riga. Contano solo le vere tabulazioni, mai quattro spazi o uno spazio unificatore, così scova rientri misti o separatori rimasti da un foglio di calcolo. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- function f() { return 1; }
- Tabulazioni
- 1
- Righe con tabulazioni
- 1
- Lunghezza
- 27
- Senza tabulazioni
- 26
Questo strumento per contare i caratteri di tabulazione misura qualsiasi stringa di testo non vuota e indica quanti caratteri di tabulazione orizzontale (Unicode U+0009, il familiare backslash-t) compaiono in qualsiasi punto del contenuto. Sviluppatori, ingegneri dei dati, editor e docenti usano ogni giorno un conteggio preciso delle tab per individuare indentazione mista prima di un lint, per verificare che un incolla da un foglio di calcolo porti ancora separatori di campo, e per bloccare importazioni che non devono contenere caratteri di controllo invisibili. Il motore è completamente deterministico: scorre la stringa una sola volta, conta solo le vere unità di codice tab e non chiama mai la rete, non campiona casualità e non dipende dall’orologio. Spazi, spazi non divisibili e altri spazi bianchi Unicode vengono ignorati nel totale delle tab, così una guida di stile che vieta le tab può rifiutare un campione con fiducia.
Cosa significa contare le tab e cosa contiene la risposta
Contare le tab risponde a una domanda di prodotto mirata: quanti caratteri di tabulazione orizzontale ci sono in questa stringa esatta, e su quante righe compaiono. Qui una tab significa solo Unicode U+0009, l’unico carattere prodotto dal tasto Tab e dalla sequenza di escape backslash-t nel codice sorgente. Quattro spazi ordinari non contano mai come una tab, uno spazio non divisibile non conta come tab, e non contano nemmeno una tabulazione verticale o un form feed.
Questa definizione stretta mantiene la metrica stabile tra editor, sistemi operativi e lingue, e corrisponde a ciò che la maggior parte delle guide di stile intende con «niente tab». Non c’è un’opzione per trattare quattro spazi come una tab, né una modalità che espanda le tab in colonne, né una coercizione silenziosa di null in un successo vuoto.
Dove i totali di tab si inseriscono in code review, import dati e didattica
Gli studenti incontrano il conteggio delle tab quando un laboratorio di stile di codice vieta l’indentazione mista, quando un esercizio di data entry incolla campioni TSV, o quando un export da foglio di calcolo deve essere controllato prima di uno script di valutazione. I docenti possono pre-generare chiavi di risposta che mostrano il totale atteso di tab senza affidarsi a macro da ufficio opache che espandono o nascondono i caratteri di controllo in modo diverso su ogni macchina.
I team dati e operations misurano frammenti rumorosi di ticket, righe di log e dump simili a CSV quando una pipeline deve rifiutare file che contengono ancora separatori tab dopo una migrazione solo-spazi. Il supporto incolla un estratto del cliente per confermare se tab invisibili stiano rompendo un parser. La abbini a conversione tab in spazi, rimozione dello spazio bianco o conteggio caratteri quando costruisce un piccolo laboratorio di helper di testo gratuiti e deterministici per form, preparazione CMS e igiene dei dati.
Casi d'uso
Audit di indentazione mista
Conti le tab in un frammento di codice prima di lint o format così le guide solo-spazi falliscano i campioni che nascondono ancora caratteri di tabulazione.
Controlli di incolla TSV e fogli di calcolo
Verifichi quanti separatori di campo a tab restano nei dati tabulari incollati prima di import, ETL o script di valutazione.
Domande frequenti
Quanto costa lo strumento per contare i caratteri di tabulazione?
È gratuito nel Suo browser in questa pagina.
Quali caratteri contano come tab?
Solo il carattere di tabulazione orizzontale Unicode U+0009 (il tasto Tab / backslash-t). Spazi, spazi non divisibili e altri spazi bianchi non contano come tab.
Cosa succede se il campo text è vuoto?
Deve fornire una stringa non vuota; i campi modulo vuoti non diventano successi silenziosi a zero.
Questo strumento converte le tab in spazi?
No. Conta solo le tab orizzontali. Usi un convertitore dedicato da tab a spazi se Le serve l’espansione a una larghezza di tabulazione fissa.
Il risultato è lo stesso ogni volta?
Sì. Il conteggio è una scansione di stringa pura e deterministica, senza rete, casualità o dipendenza dall’orologio, quindi input identico produce sempre output identico.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"text": "function f() {\n\treturn 1;\n}"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.count_tabs",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 100000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
L’input vuoto viene rifiutato con un errore chiaro invalid_input affinché un campo modulo vuoto non diventi un successo silenzioso a zero. Lo usi gratis nel browser per audit rapidi e compiti, oppure chiami l’API a $0.002 per richiesta riuscita quando le servono conteggi riproducibili in CI, pipeline o demo didattiche.
Cosa significa contare le tab e cosa contiene la risposta
La risposta è volutamente piccola e stabile: text ripete l’input per auditarne la misura, tabs è il totale intero di unità di codice U+0009, has_tabs è true quando quel totale è maggiore di zero, lines_with_tabs conta quante righe (divise su CR, LF o CRLF) contengono almeno una tab, length è la lunghezza completa in caratteri della stringa, non_tabs è length meno tabs, e method è l’etichetta fissa count_tabs per log e pipeline multi-strumento. Il motore costruisce metriche intere complete entro la lunghezza supportata oppure rifiuta la richiesta con invalid_input. I casi rifiutati includono campo text assente, valore null, stringa vuota, oggetti e array che non sono testo semplice, e qualsiasi payload più lungo del massimo di caratteri documentato. Se deve espandere le tab in spazi, rimuovere tutto lo spazio bianco, o contare ogni carattere inclusi gli spazi, usi quegli strumenti dedicati; questa pagina risponde solo ai totali di tabulazione orizzontale, con output stabile adatto a fogli di lavoro, test unitari e consumatori API che non devono inventare regole di indentazione.
Come viene letto il campo text e come i conteggi restano riproducibili
Il valore deve essere una stringa non vuota; numeri finiti e bigint vengono prima convertiti in stringa, così un codice prodotto digitato come numero produce comunque una stringa di cifre stabile che, per definizione, ha zero tab. Il conteggio usa un’unica scansione lineare con uguaglianza stretta rispetto al carattere tab — senza dizionario di rete, senza modello di machine learning e senza tabelle di locale. Il campo preferito è text, ma sono accettati gli alias input, string, value, content e s così che query string, fogli di calcolo e form tipizzati riusino lo stesso contratto senza rinominare le colonne. Booleani, oggetti semplici e array vengono rifiutati con un messaggio chiaro affinché un corpo JSON errato non diventi la parola true né un dump di oggetto inutile. Una stringa vuota è sempre invalid_input: la promessa del prodotto è contare le tab nel testo, non inventare un successo a zero per un invio vuoto. La lunghezza è limitata a centomila caratteri affinché un incolla fuori controllo non monopolizzi un Worker; payload più lunghi falliscono con un messaggio di limite esplicito anziché un taglio silenzioso. Le righe sono divise con una regola fissa CR, LF o CRLF, così un file Windows e un file Unix riportano lo stesso lines_with_tabs per lo stesso contenuto visivo. Abbini l’esecuzione gratuita nel browser di questa pagina all’API a pagamento quando le servono gli stessi totali dentro una pipeline automatizzata senza spedire i Suoi scanner.
Dove i totali di tab si inseriscono in code review, import dati e didattica
In questa pagina il lavoro viene eseguito interamente nel Suo browser; tramite l’API ogni conteggio riuscito costa $0.002, la validazione fallita non viene addebitata e nulla viene memorizzato dopo la risposta. Questa separazione — esplorazione interattiva gratuita e API a pagamento identica — combacia con il resto del catalogo tier-A del KIT e Le consente di passare da una demo in aula a una pipeline automatizzata senza cambiare il risultato numerico.
Casi di integrazione
Fixture CI deterministiche
Generi totali di tab riproducibili per test unitari, file golden e gate di pipeline che non devono inventare regole sullo spazio bianco.