Normalize Text
Utilidades de Normalización de Texto
Section titled “Utilidades de Normalización de Texto”Esta colección de funciones está diseñada para facilitar el trabajo con texto en aplicaciones web. Incluye métodos para:
- Normalizar texto eliminando acentos y convirtiendo a minúsculas.
- Comparar cadenas de texto de forma insensible a mayúsculas/minúsculas y acentos.
- Truncar textos largos para adaptarlos a un espacio limitado.
Implementación del Util
Section titled “Implementación del Util”/** * Elimina acentos y convierte el texto a minúsculas. * Ideal para búsquedas insensibles a acentos y mayúsculas. */export const normalizeText = (text: string) => { return text .normalize("NFD") // Normaliza caracteres Unicode .replace(/[\u0300-\u036f]/g, "") // Elimina marcas diacríticas (acentos) .toLowerCase();};
/** * Compara dos textos normalizados para saber si uno incluye al otro. */export const compareNormalizedText = ( principalText: string, textIncludes: string) => { return normalizeText(principalText).includes(normalizeText(textIncludes));};
/** * Corta un texto si supera cierta longitud y añade puntos suspensivos. */export const truncateText = (text: string, maxLength: number) => { if (text.length <= maxLength) { return text; } text = text.trim(); return `${text.substring(0, maxLength - 3)} ...`;};Casos de Uso y Ejemplos
Section titled “Casos de Uso y Ejemplos”Normalizar texto para búsquedas
Section titled “Normalizar texto para búsquedas”normalizeText("Crème Brûlée"); // ➜ "creme brulee"Comparar textos ignorando acentos y mayúsculas
Section titled “Comparar textos ignorando acentos y mayúsculas”compareNormalizedText("Café del Mar", "cafe"); // ➜ true
compareNormalizedText("NiÑO PERDIDO", "niño"); // ➜ true
compareNormalizedText("El Árbol", "arbol"); // ➜ trueTruncar texto para vistas limitadas
Section titled “Truncar texto para vistas limitadas”truncateText("Este es un texto muy largo que necesita ser acortado", 25); // ➜// "Este es un texto muy la ..."
truncateText("Texto corto", 20); // ➜ "Texto corto"