A veces las cadenas de texto vienen con una ristra de espacios y tabulaciones indeseados en cualquier lugar de la cadena, algo que a veces no viene demasiado bien (por ejemplo si se necesita medir el número de caracteres para truncar el texto).
Con sencilla expresión regular se puede solucionar el problema:
/([\ \t]+(?=[\ \t])|^\s+|\s+$)/g
Y un ejemplo en Javascript:
text = ' Cadena con espacios en el inicio, en el medio y en el final '
text = text.replace(/([\ \t]+(?=[\ \t])|^\s+|\s+$)/g, '');
La variable text devuelve:
'Cadena con espacios al final'
Con la expresión regular del ejemplo y el reemplazo realizado se consigue:
- Eliminar dentro de la cadena los bloques de más de un espacio o tabulador, quedando sustituidos por un solo espacio.
- Eliminar todos los espacios, tabuladores y saltos de línea al inicio y al final de la cadena
- Al no utilizar
\s
en lugar de\
se conservan otros elementos como saltos de línea.