Full Trim en JavaScript, la solución a espacios fantasmas

Full Trim en JavaScript, la solución a espacios fantasmas

Para remover espacios en blanco al principio y al final de nuestras variables en JavaScript usualmente usamos la función Trim y esta hace muy bien su trabajo, pero… ¿Que pasa si nos enfrentamos a uno o varios espacios en blanco los cuales se niegan a ser vencidos sin primero dar una gran batalla?

Hace poco me encontraba en una de estas situaciones, un día normal en la oficina, felizmente codificando una actualización para una aplicación en React, cuando de repente note que mis variables en un Array se comportaban de una forma bastante extraña, al analizarlas una por una aparecían sin espacios en blanco «variable», pero al enviarlas con Axios al servidor algunas de ellas misteriosamente mostraban varios espacios fantasma «variable «.

Y es ahí donde me hice la pregunta: ¿Que puedo hacer cuando la función Trim en una variable de tipo String no funciona correctamente? La situación se volvió cada vez mas frustrante al observar que todos mis intentos por eliminar los espacios en blanco no funcionaban y el tiempo se agotaba, es así como buen desarrollador full-stack master pro 100% real no feik emprendí un viaje por la web para buscar una alternativa al confiable trim.

Finalmente volví con un guerrero mas a la arena de combate, en StackOverflow encontré una función que aplicaba el poco comprendido y a veces olvidado Regex para remover espacios en blanco, rápidamente me dirigí hacia mi archivo de utilidades String y exporte la nueva función con la esperanza de que diera resultado.

export const fullTrim = str_value => {
  return `${str_value}`
    .replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g, "")
    .replace(/\s+/g, " ");
};

Fue todo un milagro, la función logro remover los molestos espacios en blanco de todas mis variables y así es como un día común y corriente, con una batalla inesperada entre los String y las funciones de formato tuvo un bien final, la actualización fue un éxito y el proyecto continuo su camino sin ningún bug… O eso espero 😀

import { fullTrim } from "../../../../utils/stringUtils";
console.log([" fantasmas", "lol"].map(str => str = fullTrim(str) ))

Deja un comentario