Quitar espacios extra

Reduce espacios o tabs repetidos; trim por línea opcional.

Descripción

Los espacios extra aparecen en el texto por razones que raramente controlamos. Al copiar de un PDF, el programa de extracción inserta con frecuencia varios espacios donde había un espacio tipográfico mayor o una tabulación. Al pegar desde una página HTML, el editor puede conservar múltiples espacios que el navegador colapsaría automáticamente al renderizar. Los archivos procesados por OCR (reconocimiento óptico de caracteres) son especialmente propensos a esto: el algoritmo a veces separa palabras con dos o tres espacios porque las letras estaban ligeramente separadas en la imagen escaneada.

Lo que llamamos espacio en el texto digital es en realidad toda una familia de caracteres Unicode. El espacio común (U+0020) es el que escribes con la barra espaciadora. El espacio de no separación (U+00A0) es el que algunos procesadores de texto insertan automáticamente entre un número y su unidad de medida para evitar saltos de línea incómodos. El espacio fino (U+2009) se usa en tipografía para separar grupos de dígitos en números grandes. Cada uno de estos espacios tiene un código diferente y la mayoría de las herramientas de trim y colapso solo tratan el U+0020, lo que significa que ese espacio extraño que no desaparece puede ser uno de los otros tipos.

La decisión de colapsar espacios tiene consecuencias inesperadas en algunos contextos. El código fuente de Python es sensible a la indentación, por lo que colapsar tabulaciones y espacios al inicio de las líneas rompería el programa. Los archivos YAML y Makefile también usan espacios con significado estructural. Para texto en prosa, la normalización suele ser segura. Para fragmentos de código que deban ejecutarse, se requiere mucho cuidado. Esta herramienta fue pensada para texto, no para código.

Detalle técnico

Caracteres de espacio que pasan desapercibidos

  • U+0020 (espacio común): el espacio de la barra espaciadora, el único que la mayoría de las herramientas de trim y colapso reconocen por defecto.
  • U+00A0 (espacio de no separación): impide los saltos de línea entre las palabras adyacentes. Invisible a simple vista, pero causa sorpresas en las comparaciones de cadenas: '10 kg' con espacio de no separación no es igual a '10 kg' con espacio común.
  • U+2009 (espacio fino): se utiliza en tipografía para separar grupos de dígitos (1 000 000) y entre un número y su símbolo de unidad SI. Los PDF generados por herramientas de maquetación de escritorio contienen muchos de estos caracteres.
  • U+3000 (espacio ideográfico): tiene el ancho de un carácter CJK y aparece en documentos asiáticos. Al copiar texto japonés o chino que contiene este espacio, puede mezclarse con el contenido.
  • U+FEFF (BOM / espacio de ancho cero sin separación): técnicamente no es un espacio, pero aparece invisible al inicio de los archivos UTF-8 con BOM y provoca errores silenciosos en los parsers de JSON y XML.

Cuándo colapsar espacios puede romper algo

  • Python, YAML y Makefile: la indentación tiene significado sintáctico. Colapsar o convertir tabulaciones en espacios en estos lenguajes altera el comportamiento del programa.
  • Markdown: dos espacios al final de una línea crean un salto de línea duro. Eliminar esos espacios cambia el diseño renderizado.
  • Cadenas SQL: los espacios dentro de cadenas SQL ('Juan García') forman parte de los datos y no deben colapsarse junto con el espaciado de formato.
  • Expresiones regulares: los patrones como ' ' (dos espacios) son literales; colapsar los espacios en la expresión cambia lo que coincide.
  • CSV con delimitador de espacio: poco habitual, pero existe. Colapsar varios espacios en archivos CSV delimitados por espacio puede fusionar columnas.

Guía de la herramienta

  • Con qué trabajas Texto con espacios o tabuladores repetidos, habitual al copiar de PDF o web.

  • Qué hace la herramienta Opcionalmente colapsa series de espacios/tab a un solo espacio y puede recortar cada línea.

  • Por qué usarla Normalizar párrafos pegados, preparar datos separados por espacios o CSV, mejorar legibilidad sin editar a mano.

Fragmentos de Código

Colapsar espacios y tabulaciones en JavaScript
// Colapsa varios espacios o tabulaciones en uno
const resultado = texto
  .split('\n')
  .map(linea => linea.replace(/[ \t]+/g, ' ').trim())
  .join('\n');
Tratar espacios de no separación (U+00A0)
// Normaliza espacios de no separación antes de colapsar
const normalizado = texto
  .replace(/\u00A0/g, ' ')   // NBSP → espacio común
  .replace(/[ \t]+/g, ' ') // colapsa secuencias
  .trim();

Antes

a    b  	 c  → a b c

Preguntas frecuentes

¿Para qué sirve esta herramienta?

Funciona por completo en tu navegador: sirve para validar, formatear o convertir datos en el día a día.

¿Se envían mis datos a algún servidor?

El procesamiento es local con JavaScript. No almacenamos lo que pegas en los campos de texto.

¿Puedo usarlo con datos reales en producción?

Úsalo bajo tu responsabilidad. Para secretos (contraseñas, tokens), prefiere entornos controlados y políticas internas. Recuerda de revisar los contenidos generados. Nunca confies ciegamente en cosas que ves en internet.