Troncare al centro
Faccia stare un percorso di 62 caratteri in 36 senza perdere le estremità: /Users/alex/Docum...engines/parse.js mostra ancora la cartella principale e il nome del file. I puntini contano nel limite e lei sceglie quanto dell'inizio conservare. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Lunghezza
- 36
- Testo
- /Users/alex/Docum...engines/parse.js
- Lunghezza originale
- 62
- Lunghezza del risultato
- 36
- Puntini di sospensione
- ...
Il troncamento al centro accorcia una stringa a una lunghezza di visualizzazione obiettivo togliendo il centro e inserendo puntini di sospensione, così l'inizio e la fine restano leggibili. Inserisca il testo e la lunghezza intera che il risultato deve rispettare; scelga in opzione quanti caratteri iniziali conservare e quale marcatore di ellissi inserire. Il risolutore restituisce la stringa accorciata, il prefisso e il suffisso conservati, se è avvenuto un taglio, le lunghezze originale e finale e un breve messaggio.
Cosa significa troncare al centro rispetto a un taglio di prefisso
Il troncamento al centro è un vincolo di visualizzazione rigido, di forma diversa dal troncamento ordinario di prefisso. Un taglio di prefisso conserva solo l'inizio dell'origine e aggiunge puntini in coda; è utile per frasi e titoli, ma nasconde ciò che di solito serve in un percorso o in un nome file: il nome foglia, l'estensione, l'ultima cartella o le cifre finali di un identificatore. Troncare al centro rimuove un tratto contiguo dall'interno e inserisce puntini tra un prefisso e un suffisso conservati, così entrambi gli ancoraggi restano visibili.
La lunghezza massima che Lei invia è la lunghezza massima dell'intero risultato, ellissi compresa quando serve un taglio. Se l'origine entra già, lo strumento la restituisce invariata, imposta truncated su false, mette la stringa completa in start e lascia end vuoto così chi chiama può omettere elementi di interfaccia che implicano contenuto nascosto. Se non entra, il risolutore calcola un budget di contenuto pari a length meno la lunghezza dell'ellissi.
Quando omette head, quel budget è ripartito il più uniformemente possibile e il carattere dispari residuo va all'inizio. Quando imposta head, vengono conservati quei caratteri iniziali (limitati al budget) e il resto del budget va alla fine: così un nome file lungo mantiene l'estensione e mostra ancora un breve indizio di cartella. Le lunghezze inferiori a uno non sono mai accettate: un'anteprima di larghezza zero non è un contratto utile per tabelle, briciole o registri, e i limiti negativi sono sempre errori del cliente.
Il testo vuoto con una lunghezza valida è ammesso e restituito vuoto, senza ellissi, così i flussi che passano campi di percorso opzionali non falliscono solo perché un nome è in bianco.
Consigli pratici per percorsi, nomi file e ricerche correlate
Usi questa capacità quando l'intento di ricerca è troncare al centro, accorciare un nome file con puntini o tenere visibili l'inizio e la fine di un percorso in rete. Preferisca una ripartizione equilibrata per identificatori generici e UUID; preferisca un head piccolo quando il token utile sta in fondo, come un report con estensione; preferisca un head grande quando il token utile sta all'inizio, come un host o una lettera di unità da non nascondere.
Un'ellissi personalizzata — un solo carattere Unicode di ellissi orizzontale, un punto mediano spaziato o un'etichetta «altro» tra parentesi quadre — funziona se la sua lunghezza entra ancora nel budget. Questa pagina non è un riassuntore con IA, né uno strumento che tronca solo il prefisso delle frasi, né un contatore di paragrafi o parole, né un normalizzatore di percorsi che risolve i punti o le cartelle personali.
Preferisca uno strumento di troncamento di prefisso quando il prodotto ha già deciso di tenere solo l'inizio di una frase; preferisca un accorciatore LLM quando serve una compressione che preservi il significato; preferisca questa capacità quando una persona deve riconoscere entrambe le estremità di un percorso, di un nome file, di una URL o di un identificatore dentro una griglia fissa di caratteri.
Casi d'uso
Colonne del gestore file e briciole di pane
Limiti i percorsi assoluti lunghi così una tabella o una briciola mostra ancora la radice e il nome foglia, invece di nascondere l'estensione dietro puntini in coda.
Visualizzatori di registri e artefatti di CI
Faccia entrare percorsi di artefatti di compilazione e nomi di report caricati in una riga di registro a larghezza fissa, tenendo leggibili l'ultima cartella e l'estensione.
Prove unitarie per formattatori di percorso
Generi troncamenti al centro noti, tagli sbilanciati con head e rifiuti per lunghezza inferiore a uno, destinati agli ausili frontend e alle interfacce di archiviazione.
Domande frequenti
Come decide il troncamento al centro che cosa conservare?
Sottrae la lunghezza dell'ellissi dal massimo indicato, poi conserva un prefisso e un suffisso che insieme riempiono quel budget. Ometta head per una ripartizione pari (il resto dispari va all'inizio) oppure imposti head per fissare quanti caratteri iniziali conservare.
È la stessa cosa che troncare il testo in coda?
No. Il troncamento in coda nasconde il suffisso. Il troncamento al centro serve a percorsi, nomi file e identificatori in cui inizio e fine devono restare visibili dentro una lunghezza fissa.
Che cosa succede se length è zero o l'ellissi non entra?
Length deve essere un intero di almeno uno e, quando serve un taglio, l'ellissi non può superare quella lunghezza. Le attività fallite non vengono mai addebitate.
Si può conservare più del nome file che della cartella?
Sì. Imposti head a un intero piccolo così la maggior parte del budget restante va alla fine.
Lo strumento per troncare al centro è gratuito?
Lo strumento del browser è gratuito e viene eseguito in locale.
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/truncate-middle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"/Users/alex/Documents/projects/kit-taller/src/engines/parse.js","length":36}'const res = await fetch("https://api.kit.forhosting.com/str/truncate-middle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "/Users/alex/Documents/projects/kit-taller/src/engines/parse.js",
"length": 36
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/truncate-middle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "/Users/alex/Documents/projects/kit-taller/src/engines/parse.js",
"length": 36
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/truncate-middle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"/Users/alex/Documents/projects/kit-taller/src/engines/parse.js","length":36}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"/Users/alex/Documents/projects/kit-taller/src/engines/parse.js","length":36}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/truncate-middle", 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": "/Users/alex/Documents/projects/kit-taller/src/engines/parse.js",
"length": 36
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.truncate_middle",
"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
È lo schema che gestori di file, terminali, briciole di pane, visualizzatori di registri e celle di tabella usano quando un percorso o un nome file non entra nella colonna: Lei vede ancora la cartella radice e il file reale, oppure l'inizio di un UUID e le sue ultime cifre. Una lunghezza inferiore a uno viene rifiutata con invalid_input, così la convalida dei moduli e la CI non trattano mai un tetto zero o negativo come successo. Il percorso è logica di stringhe pura e deterministica — senza rete, senza semi casuali, senza orologio — così l'esecutore gratuito del browser e l'API prepagata restituiscono lo stesso JSON a ogni invocazione.
Come chiamare l'API e che cosa contiene la risposta
Abbini la chiamata al proprio codice di impaginazione se deve misurare i glifi in un carattere proporzionale; questo estremo conta gli indici di stringa JavaScript, non i pixel resi, lo stesso contratto che già usano la maggior parte dei formattatori di percorso sul server. Invii un corpo JSON con il text obbligatorio (alias input, value, string, s, content e body) e il length obbligatorio (alias max_length, max, n, limit e max_len). La lunghezza deve essere un intero da uno a centomila inclusi; i valori inferiori a uno, i non interi e i limiti eccessivi sono invalid_input. L'head facoltativo (alias start, keep_start e prefix) è un intero non negativo che indica quanti caratteri iniziali si preferisce conservare; lo ometta per una ripartizione equilibrata. L'ellipsis facoltativo (alias marker, separator e gap) vale di default tre punti ASCII e può essere qualsiasi stringa fino a trentadue caratteri; quando il troncamento è richiesto l'ellissi non può superare length, altrimenti la richiesta fallisce invece di inventare un marcatore ritagliato. Il testo deve restare entro centomila caratteri così una sola richiesta non esaurisce la memoria del Worker né del browser. In caso di successo la risposta restituisce input come stringa originale, text come stringa finale da mostrare, length come massimo richiesto, original_length e result_length come conteggi di caratteri, truncated come booleano, ellipsis come marcatore usato, start come prefisso conservato, end come suffisso conservato e message come un breve riassunto in inglese. Una convalida fallita — manca text o length, un text che non è una stringa, un length non intero o inferiore a uno, un head negativo, un carico eccessivo o un'ellissi che non entra sotto il limite quando serve un taglio — restituisce invalid_input e non viene mai addebitata. Il prezzo è una tariffa fissa di $0.002 per richiesta riuscita, con unità item.
Consigli pratici per percorsi, nomi file e ricerche correlate
I controlli andata e ritorno per i test sono semplici: invii un percorso assoluto lungo con lunghezza trentasei e si aspetti truncated true, uno start non vuoto, un end non vuoto e un result_length al massimo di trentasei; imposti head a dodici sullo stesso percorso e si aspetti che il prefisso sia esattamente quei dodici caratteri quando il budget lo consente; invii length zero o un intero negativo e si aspetti invalid_input che menziona una lunghezza inferiore a uno. Le attività fallite che restituiscono invalid_input non consumano il saldo prepagato, il che mantiene economiche la convalida dei moduli e le prove negative di CI. Quando forma i revisori, mostri lo stesso percorso lungo in ripartizione equilibrata e con preferenza head così vedono che cambiano solo la posizione del taglio e i campi start e end, mentre le regole di lunghezza e di ellissi restano le stesse.