2011-07-08 15 views
338

Duplicar posible:
Replace all spaces in a string with '+'quita todos los espacios en blanco del texto

$("#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 otra propiedad de texto de ID. El problema con esto es que el ID que contiene el texto que necesito contiene huecos entre las letras.

Me gustaría que se eliminen los espacios en blanco. He intentado TRIM() y REPLACE(), pero esto solo funciona parcialmente. El REPLACE() solo elimina el 1er espacio.

+0

sí, esto hizo el trabajo cuando lo probé, pero esto no va a ponerse de pie y si hay más que unos pocos espacios Es una solución desordenada en cuanto al código. Gracias sin embargo. –

+2

Debería echarle un vistazo a la respuesta más votada en esa pregunta ... –

Respuesta

787

Tienes que decirle replace() para repetir el regex:

.replace(/ /g,'') 

El g caracteres significa repetir la búsqueda a través de la cadena completa. Lea sobre esto y otros modificadores de RegEx disponibles en JavaScript here.

Si desea hacer coincidir todos los espacios en blanco, y no sólo el carácter de espacio literal, utilice \s así:

.replace(/\s/g,'') 
+17

Coffeescript se quejará de esa expresión regular por alguna horrible razón divina. En cambio, tuve que seguir adelante y usar '.replace (/ \ s +/g, '')' que estoy totalmente de acuerdo conmigo. –

+5

Si desea implementar algo como el método string.strip de ruby, que devuelve una copia de la cadena con el espacio en blanco inicial y final eliminado, esto debería funcionar: 'x =" Muchos espacios antes y después "' 'y = x.replace (/ (^ \ s + | \ s + $)/g, "") ' El'^\ s' significa espacio en blanco después del comienzo de la cadena, '\ s $' significa espacios en blanco al final de la cadena, '|' es para cualquiera de los dos en el grupo, y el modificador 'g' se explica en los comentarios anteriores.También necesita cuantificadores '+' después de cada 's ', ya que desea capturar una o más instancias de espacios en blanco. –

+2

si la expresión regular no es lo tuyo, puedes hacer 'string.split ('') .join ('')' también. –

237
.replace(/\s+/, "") 

debería funcionar (expresión regular que elimina todos los espacios)

o puede probar esta

.replace(/\s/g, "") 

(reemplace a nivel mundial espacios)

+45

+1 para tomar también en cuenta las pestañas y las nuevas líneas – uglymunky

+9

La primera no elimina ** todos ** los espacios en blanco (elimina solo el primer grupo de espacio/nueva línea/pestaña), el 2do está bien. demo: http://regex101.com/r/wX8rF2/3 –

+3

.replace (/ \ s +/g, '') – mynameistechno

Cuestiones relacionadas