¿Cómo eliminar espacios de una cadena usando JavaScript?


¿Cómo eliminar espacios en una cadena? Por ejemplo:

Entrada: '/var/www/site/Brand new document.docx'
Salida : '/var/www/site/Brandnewdocument.docx'

Gracias

Author: JLuiz, 2011-05-11

7 answers

Esto?

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 esta pregunta, 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 "espacios en blanco", y g es la bandera" global", lo que significa coincidir con TODOS \s (espacios en blanco).

Una gran explicación para + se puede encontrar aquí.

Como nota al margen, podría reemplazar el contenido entre las comillas simples a cualquier cosa que desee, por lo que puede reemplazar los espacios en blanco con cualquier otra cadena.

 856
Author: Šime Vidas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-10 13:41:39

var a = b = " /var/www/site/Brand new   document.docx ";

console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') ); 

Dos maneras de hacer esto!

 46
Author: rsplak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-14 10:06:02

Siguiendo la respuesta de @rsplak: en realidad, usar split/join way es más rápido que usar regexp. Ver el caso de prueba de rendimiento

So

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

Funciona más rápido que

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

En textos pequeños esto no es relevante, pero para los casos en que el tiempo es importante, por ejemplo, en los analizadores de texto, especialmente cuando se interactúa con los usuarios, eso es importante.


Por otro lado, \s+ maneja una variedad más amplia de caracteres de espacio. Entre con \n y \t, también coincide con el carácter \u00a0, y eso es lo que   se entrega cuando se obtiene texto usando textDomNode.nodeValue.

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

 11
Author: Minstel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-01 18:50:43
var input = '/var/www/site/Brand new document.docx';

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

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

alert(input);

Haga clic aquí para ver el ejemplo de trabajo

 7
Author: Muhammad Tahir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-05 12:09:19

Puedes intentar usar esto:

input.split(' ').join('');
 5
Author: aaaaa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-12 00:52:56
  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 use 'g' o 'gi' para eliminar espacios, ambos se comportan de la misma manera.

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

Para referencia haga clic aquí.

 2
Author: Raveendra007,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-28 11:52:57

MÁS CORTO y MÁS RÁPIDO: str.replace(/ /g, '');


Punto de referencia:

Aquí mis resultados - (2018.07.13) macOS High Sierra 10.13.3 en Chrome 67.0.3396 (64-bit), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64-bit)):

introduzca la descripción de la imagen aquí

La solución más rápida en todos los navegadores es / /g (regexp1a) - Chrome 17.7 M (operation/sec), Safari 10.1 M, Firefox 8.8 M. La solución más lenta para todos los navegadores fue split-join. Cambiar to \s o añadir + o i a regexp se ralentiza procesamiento.

Puede ejecutarlo en su máquina: https://jsperf.com/remove-string-spaces

 2
Author: Kamil Kiełczewski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-13 10:24:59