Cómo eliminar acentos en Javascript
Cuando trabajamos con cadenas de texto en JavaScript, a menudo nos enfrentamos al desafío de manejar acentos y caracteres especiales. A veces, necesitamos ignorarlos para realizar diversas tareas. A continuación te muestro un método sencillo para manejar cadenas con acentos y diacríticos de forma sencilla: La descomposición canónica
En javascript usaremos normalize() para normalizar una cadena en la forma de descomposición canónica (NFD), lo que significa que los caracteres con acentos se descomponen en sus componentes base y marca diacrítica.
Por ejemplo:
const cadenaConAcentos = "¿Cómo estás?";
const cadenaSinAcentos = cadenaConAcentos.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
console.log(cadenaSinAcentos); // Resultado: "¿Como estas?"
En el código de arriba aplicamos a nuestra cadena la normalización canónica, lo que descompondrá en caracteres y diacríticos. Para entendernos, se generaría el código de la para la cadena: ¿Co´mo esta´s?
A esta cadena le aplicaríamos la expresión regular [\u0300-\u036f] que busca y reemplaza cualquier carácter diacrítico en la cadena. En esta lista puedes ver los diacríticos en los rangos reemplazados.
¿Cómo podemos utilizar esta normalización en nuestras aplicaciones?
Búsquedas más robustas
Imagina que estás construyendo una función de búsqueda en tu aplicación web. Al normalizar las cadenas de búsqueda y los textos donde buscas, puedes garantizar que los acentos no afecten la precisión de tus resultados.
Por ejemplo, si un usuario busca "café", con la normalización puedes asegurarte de que encuentre también resultados que contienen "cafe".
URLs amigables
En aplicaciones web, es común utilizar cadenas de texto para generar URLs amigables. Sin embargo, los caracteres con acentos pueden causar problemas en las URLs. Al normalizar las cadenas antes de usarlas en las URLs, puedes garantizar que sean legibles y fáciles de compartir, sin importar los acentos que contengan.
Estos son solo algunos ejemplos de cómo la normalización de cadenas puede simplificar y mejorar el manejo de texto en tus aplicaciones JavaScript.