piapia123
es

Filtrar por longitud de línea

Texto

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Conserva o descarta líneas según lo largas que sean. Lo difícil no es el filtrado, sino con qué regla se mide: la misma línea de dos letras latinas y dos caracteres CJK son 4 caracteres, 8 bytes y 6 columnas de ancho, según la medida: · Caracteres — lo que contaría un lector (por grupo de grafemas, así que un emoji es uno) · Bytes — lo que ocupa el texto en UTF-8, que es lo que usan las columnas de base de datos y los límites de API (un carácter CJK son tres bytes) · Ancho de visualización — el ancho tipográfico, donde un carácter CJK ocupa dos columnas; es en lo que se apoyan comprobaciones de ancho fijo como los números de teléfono Elige la medida equivocada y el filtro parece razonable mientras conserva las líneas equivocadas, sin mostrar ningún error. Por eso la medida es una elección explícita. La tabla de anchos es la misma que usa la meta descripción de la página, así que las dos nunca discreparán sobre cuánto ocupa algo. Conservar y Descartar son una pareja, no dos herramientas: a la mitad de la gente le viene bien «conserva las de 5 a 20 caracteres» y a la otra mitad «borra todo lo que pase de 20». Un rango, dos direcciones, ambas expresables.

Funciones

  • Tres medidas: caracteres, bytes UTF-8 y ancho de visualización
  • Ambos límites son inclusivos, y un máximo de 0 significa sin límite
  • Conservar y Descartar comparten el mismo rango
  • Los bytes se cuentan con TextEncoder, así que los emoji (cuatro bytes) y los caracteres de bloques de extensión se tratan bien
  • La tabla de anchos se comparte con la meta descripción, así que las dos nunca se desvían
  • El filtrado nunca altera las líneas que sobreviven: sin recortar, sin colapsar, sin tocar los finales de línea
  • Un límite inferior mayor que el superior lanza un error en vez de no devolver nada
  • Todo se ejecuta localmente en tu navegador; no se sube nada

Cómo se usa

  1. Pega el texto que quieras filtrar
  2. Elige la medida: caracteres, bytes o ancho de visualización
  3. Fija los límites y elige Conservar o Descartar
  4. El resultado se actualiza mientras escribes; haz clic en Copiar para llevártelo

Preguntas frecuentes

¿En qué se diferencian las tres medidas?
Toma una línea de dos letras latinas seguidas de dos caracteres CJK: 4 caracteres (cuatro grupos de grafemas), 8 bytes (dos caracteres CJK de tres bytes cada uno más dos letras de un byte) y 6 columnas de ancho (dos caracteres CJK de dos columnas cada uno más dos letras de una). Usa bytes cuando una columna de base de datos o una API tengan un límite de longitud, ancho de visualización cuando el límite sea sobre cómo se ve en pantalla, y caracteres cuando te refieras a cuántos caracteres hay.
¿Qué significa un máximo de 0?
0 significa sin límite. La entrada no tiene un estado vacío, así que un número tiene que hacer de centinela, y 0 es el único valor que no podría ser un máximo real: ninguna línea tiene longitud negativa. Ojo, poner ambos límites a 0 quita toda condición: Conservar deja pasar todo y Descartar lo elimina todo.
¿Por qué no usar simplemente el número de caracteres en vez del ancho de visualización?
Porque un carácter CJK mide aproximadamente el doble de ancho que uno latino. Un titular de 20 caracteres chinos y uno de 20 letras latinas tienen el mismo número de caracteres pero casi el doble de ancho tipográfico, así que «no más de 20 caracteres» se pasa de un diseño por mucho en chino. Cuando lo que quieres decir es cuánto ocupa a la vista, mide el ancho de visualización.

Herramientas relacionadas