2011-05-11 20 views

Respuesta

762

Este?

str = str.replace(/\s/g, ''); 

Ejemplo

var str = '/var/www/site/Brand new document.docx'; 
 

 
document.write(str.replace(/\s/g, ''));


Actualización: Basado en this question, esto:

str = str.replace(/\s+/g, ''); 

es una mejor solución. Produce el mismo resultado, pero lo hace más rápido.

la expresión regular

\s es la expresión regular para los "espacios en blanco", y g es la bandera "global", lo que significa Que todas \s (espacios en blanco).

Una gran explicación para + se puede encontrar here.

Como nota al margen, podría reemplazar el contenido entre las comillas simples por cualquier cosa que desee, para poder reemplazar el espacio en blanco con cualquier otra cadena.

+0

@Gaurav he admirado respuestas similares en el SO, y veo '.replace (/ \ s +/g, '') 'más a menudo. ¿Hay alguna diferencia entre eso y mi respuesta? –

+0

en este caso, no hay diferencia. Pero + se usa para encontrar al menos una ocurrencia. – Gaurav

+1

¡Funcionó impecablemente! Gracias – JLuiz

37
var a = "/var/www/site/Brand new document.docx"; 
alert(a.split(' ').join('')); 
alert(a.replace(/\s/g, "")); 

¡Dos formas de hacerlo!

+1

Me gustó la división() y me uní a(). –

7
var input = '/var/www/site/Brand new document.docx'; 

//remove space 
input = input.replace(/\s/g, ''); 

//make string lower 
input = input.toLowerCase(); 

alert(input); 

Click here for working example

2
var output = '/var/www/site/Brand new document.docx'.replace(/ /g, ""); 
    or 
    var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,""); 

Nota: Aunque se utiliza 'g' o 'gi' para la eliminación de espacios tanto se comporta de la misma.

Si usamos 'g' en la función de reemplazo, comprobará la coincidencia exacta. pero si usamos 'gi', ignora la sensibilidad de mayúsculas y minúsculas.

como referencia click here.

3

Siguiendo @rsplak respuesta: en realidad, el uso de la forma de división/unión es más rápido que el uso de expresiones regulares. Ver el rendimiento test case

Así

var result = text.split(' ').join('')

actúa más rápidamente que

var result = text.replace(/\s+/g, '')

En los textos pequeños esto no es relevante, pero para los casos en que el tiempo es importante, e.gramo. en los analizadores de texto, especialmente al interactuar con los usuarios, eso es importante.


Por otro lado, \s+ maneja más amplia variedad de espacios. Entre los \n y \t, también coincide con el carácter \u00a0, y eso es lo que   se activa al obtener texto usando textDomNode.nodeValue.

Así que creo que la conclusión de que aquí se puede hacer de la siguiente manera: si sólo se necesita reemplazar espacios' ', utilizar split/join. Si puede haber diferentes símbolos de clase símbolo - utilizar replace(/\s+/g, '')

4

Usted podría tratar de usar esto:

input.split(' ').join(''); 
Cuestiones relacionadas