Truncador de texto

Trunca un texto a un límite de caracteres o palabras con un sufijo personalizable.

Cómo funciona

  1. Pega tu texto: introduce o pega cualquier texto en el campo: artículos, descripciones, publicaciones sociales o cualquier contenido que quieras acortar.
  2. Define el límite: elige el límite de caracteres o palabras adecuado para tu plataforma de destino (ej.: 160 para meta descripciones, 280 para Twitter).
  3. Copia el resultado: el texto truncado aparece al instante. Haz clic en Copiar para obtener la versión acortada, lista para usar.

¿Por qué usar el truncador de texto?

Cada plataforma tiene límites de longitud: Twitter, meta descripciones, campos de base de datos, notificaciones y SMS imponen límites estrictos de caracteres. El truncado manual suele cortar incómodamente a mitad de palabra o dejar puntuación colgando. Esta herramienta trunca de forma inteligente respetando los límites de palabra y te permite previsualizar exactamente cómo queda dentro del límite, lo que ahorra tiempo y evita errores de formato.

Funcionalidades

Preguntas frecuentes

¿Corta en mitad de una palabra?

No. El truncador corta en el límite de palabra más cercano antes del límite, para que la salida termine siempre en una palabra completa. Esto mantiene tu texto truncado legible y cuidado.

¿Puedo usarlo para meta descripciones?

Sí. Ajusta el límite a 155-160 caracteres para las meta descripciones de Google, o a 120 caracteres para un truncado más ceñido. La herramienta muestra el contador de caracteres en tiempo real para afinar el resultado.

¿Qué pasa con los caracteres especiales y los emojis?

Los caracteres especiales y los emojis se conservan tal cual. Ten en cuenta que los emojis pueden contar como 2 caracteres en algunas plataformas; verifica el recuento final en tu plataforma de destino si la precisión es importante.

Qué significa realmente «un carácter»

Un usuario ve un «carácter» donde JavaScript ve tres valores. La cadena «👨‍👩‍👧‍👦» (emoji familia de cuatro) es un grupo de grafemas, siete puntos de código Unicode unidos por Zero-Width Joiners (U+200D), y once unidades de código UTF-16. Por eso "👨‍👩‍👧‍👦".length === 11 en JavaScript. La definición autoritaria vive en el Anexo Estándar Unicode #29 «Segmentación de Texto Unicode» (versión actual 15.0, septiembre de 2022), que especifica los límites de grupos de grafemas, límites de palabras y límites de oraciones. JavaScript moderno expone UAX #29 a través de Intl.Segmenter, estandarizado en ECMAScript 2022 y enviado en cada navegador desde Firefox 125 (abril de 2024); Chrome lo tiene desde la versión 87 (noviembre de 2020) y Safari desde 14.1 (abril de 2021). Use new Intl.Segmenter('es', { granularity: 'grapheme' }) para contar como cuentan los humanos.

Límites de caracteres en las plataformas a las que envía

Los límites de palabras no son solo split(' ')

El truncador ingenuo de límite de palabras divide la entrada en /\s+/ y corta antes de la primera palabra que lo pone por encima del límite. Eso funciona para inglés. Falla en chino, japonés, coreano y tailandés, ninguno usa espacios en blanco entre palabras: la entrada entera termina como una sola «palabra», así que el recortador o lo mantiene todo o lo corta todo. El árabe usa espacios pero une formas de letras de maneras que cambian las posiciones de límite. Intl.Segmenter con granularity: 'word' aplica el algoritmo de límite de palabras UAX #29 y produce cortes correctos para cada idioma. También distingue segmentos «similares a palabras» (devuelven isWordLike: true) de segmentos de puntuación y espacios, así que puede encontrar el último límite de palabra antes de su presupuesto de caracteres con una sola pasada sobre los segmentos.

Truncamiento CSS: text-overflow y line-clamp

Si el objetivo es truncar visualmente mientras se mantiene el texto completo en el DOM (para que permanezca disponible para lectores de pantalla, motores de búsqueda y copiar-pegar), use CSS. El truncamiento de una línea requiere tres propiedades juntas: overflow: hidden; white-space: nowrap; text-overflow: ellipsis;. text-overflow: ellipsis está definido en el Módulo CSS Basic User Interface Nivel 4 (Candidate Recommendation W3C agosto de 2021) y se ha enviado en cada navegador desde Firefox 7 (septiembre de 2011); Internet Explorer 6 lo tenía ya en agosto de 2001. El truncamiento multilínea usa display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;. La propiedad -webkit-line-clamp data de WebKit 2009 y ahora está definida en el Módulo CSS Overflow Nivel 3 (Working Draft W3C). El line-clamp sin prefijo se envía en Safari 18 (septiembre de 2024) y Firefox 125 (abril de 2024); siempre incluya la forma -webkit- como respaldo. Limitación crítica: el truncamiento CSS es puramente presentacional. El texto completo todavía está en el código HTML, así que el snippet SEO, el resumen de correo electrónico y el índice de búsqueda impulsado por JS ven la cadena no truncada.

Errores comunes

Más preguntas frecuentes

¿Por qué Twitter cuenta mi URL como 23 caracteres incluso cuando es mucho más larga?

Twitter envuelve cada URL a través de su acortador t.co para análisis y detección de abuso, así que factura cada URL por la longitud del peor caso del acortador: 23 caracteres para HTTPS. Si escribe una URL de 100 caracteres, cuenta como 23 en la interfaz de Twitter. La misma regla se aplica a los metadatos de Twitter Card. La biblioteca de código abierto twitter-text (Twitter, MIT) implementa la regla exacta si necesita simulación perfecta al carácter.

¿Esta herramienta respeta los idiomas RTL como el árabe y el hebreo?

El contenido de texto se preserva incluyendo sus marcadores bidi (bidireccionales). El truncamiento opera sobre caracteres en orden lógico, así que cortar una oración árabe en el carácter 100 corta en el carácter 100 lógico (el que un lector de pantalla anunciaría primero). El orden de visualización puede invertirse visualmente debido al flujo de derecha a izquierda, pero la cadena subyacente es consistente.

¿Por qué mi SMS truncado todavía se divide en tres partes a 161 caracteres?

SMS usa codificación 7-bit GSM para texto solo latino, encajando 160 caracteres en un segmento. Pero cualquier carácter fuera de GSM-7, incluyendo las comillas tipográficas «inteligentes» de la autocorrección (U+2018 / U+2019), la elipsis Unicode (U+2026), o emojis, fuerza todo el mensaje a codificación UCS-2 a 70 caracteres por segmento. Si su mensaje truncado de 160 caracteres contiene una comilla tipográfica, el operador lo divide en tres partes UCS-2 de 70 caracteres. Reemplace las comillas tipográficas por comillas ASCII para SMS.

¿Puedo truncar texto formateado en HTML sin romper las etiquetas?

No de forma segura con un corte que cuenta caracteres. O elimine las etiquetas HTML primero (vía DOMParser o un parser del lado del servidor), trunque el texto plano, luego opcionalmente reenvuelva; o use un truncador consciente del DOM que recorra el árbol de nodos y clone prefijos de nodos de texto enteros. El regex puro sobre la cadena HTML no es seguro (HTML no es un lenguaje regular).

¿Se envía algo a un servidor?

No. El texto que pega, el límite que elige, el sufijo que establece y la salida truncada se procesan en el JavaScript de su navegador. No se realiza ninguna llamada de red y no se almacena ninguna copia de su entrada. Abra la pestaña Red en DevTools para verificar.

Herramientas relacionadas

Contador de caracteres Contador de palabras y caracteres gratuito en línea Eliminador de espacios y limpiador de texto Convertidor de mayúsculas y minúsculas