Rimuovi spazi e pulisci testo
Pulisci testo disordinato rimuovendo spazi superflui, tabulazioni e righe vuote.
Come usare
- Incolla il tuo testo nell'area di input.
- Seleziona le opzioni di pulizia desiderate (tutte spuntate per impostazione predefinita).
- Clicca su Pulisci il testo per elaborare.
- Copia o scarica il risultato pulito.
Domande frequenti
Cosa conta come spazio bianco?
Spazi, tabulazioni, spazi insecabili e altri caratteri di spaziatura Unicode. I ritorni a capo sono gestiti separatamente tramite le opzioni «righe vuote» e «riduci ritorni a capo».
Questo strumento modifica il mio contenuto?
No. Rimuove o riduce solo i caratteri di spaziatura. Le tue parole, la punteggiatura e gli altri contenuti restano intatti.
Posso usarlo per il codice?
Puoi, ma con cautela · rimuovere gli spazi all'inizio distruggerà l'indentazione del codice. Usa le caselle individuali per controllare esattamente cosa viene pulito.
Cosa significa davvero «whitespace»
Un carattere di spaziatura è uno che produce spazio vuoto quando il testo viene renderizzato, invece di un glifo visibile; viene usato per separare le parole, indentare le righe e spezzare i paragrafi. Il Database dei Caratteri Unicode assegna la proprietà formale White_Space esattamente a 25 code point. I soliti sospetti (spazio, tab, line feed, carriage return) coprono la maggior parte di ciò che si incolla, ma la lista completa include anche lo spazio non divisibile (U+00A0), lo spazio non divisibile stretto (U+202F), 11 spazi tipografici nell'intervallo U+2000-U+200A, i separatori di riga e di paragrafo (U+2028, U+2029), lo spazio matematico medio (U+205F) e lo spazio ideografico a larghezza piena (U+3000) usato dopo la punteggiatura CJK.
Un gruppo separato sembra invisibile ma non è classificato come spaziatura da Unicode: il byte-order mark (U+FEFF), lo spazio a larghezza zero (U+200B), lo zero-width joiner e non-joiner (U+200D, U+200C), il word joiner (U+2060) e il trattino morbido (U+00AD). Questi sono controlli di formattazione, non spazi; la maggior parte delle segnalazioni «ho pulito il testo ma qualcosa non va ancora» risale a uno di essi.
Cosa fa questo strumento, opzione per opzione
- Taglia spazi iniziali/finali per riga: rimuove la spaziatura all'inizio e alla fine di ogni singola riga. Utile per pulire citazioni indentate dalle email o la spaziatura destra aggiunta accidentalmente durante il copia-incolla.
- Comprimi più spazi in uno: sequenze di due o più spazi diventano un singolo spazio. Gestisce l'abitudine dattilografica del doppio spazio dopo il punto (che la maggior parte delle guide di stile moderne, come Chicago e AP, sconsiglia).
- Rimuovi righe vuote: elimina qualsiasi riga vuota o contenente solo spaziatura. Necessità comune dopo aver incollato testo da PDF.
- Converti tab in spazi: sostituisce ogni
\tcon spazi. Prestare attenzione nel codice: Python e YAML sono sensibili alla spaziatura, e i Makefile richiedono l'indentazione con tab nelle righe di ricetta. - Taglia inizio/fine dell'intero testo: rimuove la spaziatura iniziale e finale dall'intera stringa in una sola volta (equivalente di
trim()in JavaScript). - Comprimi più a-capo in uno: sequenze di caratteri di a-capo consecutivi diventano un singolo a-capo. Utile quando «Rimuovi righe vuote» è troppo aggressivo e si vuole mantenere una singola riga vuota per le interruzioni di paragrafo.
Tutte e sei le opzioni sono interruttori indipendenti (deselezionare quelle da saltare) e ognuna opera solo sul testo incollato. Nulla viene caricato; la pulizia avviene nel browser tramite passaggi di regex JavaScript.
Quando usarlo
- PDF e documenti Word. I PDF inseriscono interruzioni di riga forzate alla fine visiva di ogni riga e a volte conservano la sillabazione; il testo incollato da Word spesso ha spazi non divisibili tra numeri e unità (10 km), intorno alla punteggiatura francese o dopo titoli onorifici come Mr. Smith.
- Normalizzare l'input utente. Gli spazi finali in un campo «Nome» o email fanno sì che
"Smith"e"Smith "risultino diversi nel confronto. Rimuoverli all'ingresso (o prima della ricerca) elimina un'intera classe di bug di tipo «utente non trovato». - Preparazione di CSV e TSV. I valori di campo con spazi iniziali o finali rovinano i parser downstream che si aspettano chiavi a corrispondenza esatta. L'esportazione CSV UTF-8 di Excel aggiunge silenziosamente un byte-order mark, che un parser downstream che non rimuove il BOM vedrà come parte dell'intestazione della prima colonna, producendo uno strano
colname. - Bozze Markdown e blog. Più righe vuote consecutive si renderizzano come un singolo blocco in Markdown ma appesantiscono i file sorgente e rendono i diff rumorosi.
- Firme email, trascrizioni di chat e identificatori: pulizia rapida prima di incollarli in un altro documento o prima di inviare un codice promozionale o una chiave di licenza a un'API rigida sulla spaziatura.
Insidie comuni
- Rimuovere la spaziatura iniziale rompe il codice. Python e YAML usano l'indentazione come sintassi. Rimuoverla e il file sembrerà identico all'occhio ma non verrà analizzato correttamente.
- La conversione dei tab rompe i Makefile. GNU make si rifiuta di eseguire se le righe di ricetta sono indentate con spazi invece di tab. La stessa cautela si applica all'output di gofmt di Go.
- NBSP sembra identico a uno spazio. Un utente spesso vede un singolo «spazio» tra due parole e presume che qualsiasi strumento di pulizia lo catturi. La regex
\sdi JavaScript corrisponde allo spazio non divisibile nei browser moderni, ma se si scrive la propria regex in un altro linguaggio (o in un ambiente molto vecchio) potrebbe essere necessario elencare NBSP esplicitamente. - La spaziatura finale in Markdown è significativa. Due spazi finali alla fine di una riga Markdown creano un'interruzione di riga
<br>. Il taglio della spaziatura finale per riga rimuove quelle interruzioni di riga; se si dipende da esse, lasciare l'opzione disattivata. - Fine riga Windows. I file copiati da una sorgente Windows usano CRLF (
\r\n). I passaggi «rimuovi righe vuote» e «comprimi a-capo» devono riconoscere il CR; altrimenti un\rspurio può sopravvivere alla fine di ogni riga. - I caratteri a larghezza zero sopravvivono alla rimozione della spaziatura. ZWSP (U+200B), ZWJ (U+200D), ZWNJ (U+200C), word joiner (U+2060) e trattino morbido (U+00AD) non sono spaziatura Unicode, quindi un generico strumento di pulizia della spaziatura non li toccherà. Se il testo risulta strano dopo la pulizia, incollarlo in un visualizzatore esadecimale o in un ispettore separato di «caratteri invisibili».
- Rapporto tra input e output. La pulizia è irreversibile all'interno di questa pagina una volta copiato o chiuso; non esiste una cronologia di annullamento. Conservare l'originale da qualche parte se potrebbe servire.
Breve contesto tecnico
Questo strumento funziona interamente nel browser usando il motore regex integrato di JavaScript. String.prototype.trim() nei motori moderni (ogni browser evergreen dal 2015 circa) rimuove sia lo spazio non divisibile che il byte-order mark, perché la specifica ECMAScript definisce il suo set di taglio come l'unione delle produzioni WhiteSpace e LineTerminator, una lista che copre tab, spazio normale, NBSP, BOM, gli spazi tipografici e le interruzioni di riga CR / LF / LS / PS. Esclude solo un carattere di spaziatura Unicode, U+0085 (NEL), una curiosità ereditata da EBCDIC che appare quasi mai nel testo moderno.
Per input molto grandi, la parte lenta è raramente il passaggio regex; è scrivere il risultato nella textarea e ri-renderizzare il DOM. Input fino a pochi megabyte sono tipicamente gestibili su un laptop moderno; oltre quella soglia, gli strumenti da riga di comando (tr, sed, awk o un breve script Python) sono di solito più veloci.
Altre domande
Qual è la differenza tra uno spazio normale e uno spazio non divisibile?
Si renderizzano alla stessa larghezza ma lo spazio non divisibile (NBSP, U+00A0) indica al renderer di non spezzare una riga in quel punto. Word, Google Docs e molti CMS lo inseriscono tra titoli onorifici e cognomi (Mr. Smith), tra numeri e unità (10 km) o intorno ai simboli di valuta ($ 5). È il carattere «strano» più comune da trovare nel testo incollato, ed è per questo che lo stesso aspetto di spazio tra due parole a volte resiste a una regex scritta per spazi normali.
Rimuoverà i caratteri a larghezza zero o il byte-order mark?
La gestione della spaziatura di JavaScript cattura generalmente il byte-order mark (U+FEFF). Non cattura lo spazio a larghezza zero (U+200B), lo zero-width joiner (U+200D), lo zero-width non-joiner (U+200C), il word joiner (U+2060) o il trattino morbido (U+00AD); Unicode non li classifica come spaziatura, quindi sopravvivono a un passaggio di pulizia della spaziatura per design. Se si sospetta che uno di questi sia nel testo, sarà necessario un ispettore di caratteri invisibili.
Perché le righe vuote e gli a-capo consecutivi sono due opzioni separate?
«Rimuovi righe vuote» elimina ogni riga vuota; il risultato è un blocco continuo di testo senza interruzioni di paragrafo. «Comprimi più a-capo in uno» mantiene un singolo a-capo tra i paragrafi e rimuove solo quelli in eccesso. Se si vogliono paragrafi leggibili nell'output, lasciare la prima opzione disattivata e usare la seconda.
Esiste un limite di lunghezza?
Non esiste un limite rigido; lo strumento può gestire comodamente testo nell'ordine di decine di migliaia o fino a qualche milione di caratteri su un laptop moderno. Il limite è la performance della textarea del browser: le incollature molto grandi iniziano a rallentare durante la digitazione o la copia, non durante il passaggio di pulizia stesso.
Vengono inviati dati a un server?
No. Il testo non lascia mai il browser. La pulizia avviene localmente in JavaScript, il risultato viene riscritto in una textarea sulla stessa pagina e la pagina può essere usata offline una volta caricata. Lo stesso vale per ogni strumento su Absolutool.