Eliminar TODOS los espacios en blanco del texto

592
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

Este es un fragmento de mi código. Quiero agregar una clase a una ID después de obtener la propiedad de texto de otra ID. El problema con esto, es la identificación que contiene el texto que necesito, contiene espacios entre las letras.

Me gustaría eliminar los espacios en blanco. Lo he intentado TRIM()y REPLACE()esto solo funciona parcialmente. El REPLACE()único elimina el 1er espacio.

Cecil Theodore
fuente

Respuestas:

1351

Tienes que decir a replace () para repetir la expresión regular:

.replace(/ /g,'')

El carácter g significa repetir la búsqueda a través de toda la cadena. Lea sobre esto y otros modificadores RegEx disponibles en JavaScript aquí .

Si desea hacer coincidir todos los espacios en blanco, y no solo el carácter de espacio literal, use \sen su lugar:

.replace(/\s/g,'')
Flimzy
fuente
31
Coffeescript se quejará de esa expresión regular por alguna horrible razón. En cambio, tuve que seguir adelante y usar el .replace(/\s+/g, '')que está totalmente bien para mí.
Dan Bradbury
77
Si desea implementar algo como el método string.strip de ruby, que devuelve una copia de la cadena con espacios en blanco iniciales y finales eliminados, esto debería funcionar: x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "") el ^\sespacio en blanco significa después del comienzo de la cadena, \s$significa espacio en blanco al final del string, |es para / o en el grupo, y el gmodificador se explica en los comentarios anteriores. También necesita +cuantificadores después de cada uno, \sya que desea capturar una o más instancias de espacios en blanco.
Garrett Simpson
300
.replace(/\s+/, "") 

Reemplazará solo el primer espacio en blanco , esto incluye espacios, pestañas y nuevas líneas.

Para reemplazar todos los espacios en blanco en la cadena, debe usar el modo global

.replace(/\s/g, "")
Pantelis
fuente
11
El primero no elimina todos los espacios en blanco (solo elimina el primer grupo de espacio / nueva línea / pestaña), el segundo está bien. demo: regex101.com/r/wX8rF2/3
44
.replace (/ \ s + / g, '')
mynameistechno
@mynameistechno El +no agrega nada ya que ya estamos usando el gmodificador (global)
d4nyll
la primera línea no funcionó ya que no elimina los espacios finales del texto
UKDataGeek
@ d4nyll Podría hacerlo más eficiente.
Solomon Ucko
5

Usar String.prototype.replacecon regex, como se menciona en las otras respuestas, es sin duda la mejor solución.

Pero, solo por diversión, también puede eliminar todos los espacios en blanco de un texto usando String.prototype.splity String.prototype.join:

const text = ' a b    c d e   f g   ';
const newText = text.split(/\s/).join('');

console.log(newText); // prints abcdefg

Alberto Trindade Tavares
fuente