Respuestas:
¿Esta?
str = str.replace(/\s/g, '');
Ejemplo
var str = '/var/www/site/Brand new document.docx';
document.write( str.replace(/\s/g, '') );
Actualización: según 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 "espacio en blanco", y g
es el indicador "global", que significa coincidir TODOS \s
(espacios en blanco).
Una gran explicación para +
se puede encontrar aquí .
Como nota al margen, puede reemplazar el contenido entre comillas simples por lo que desee, de modo que pueda reemplazar los espacios en blanco con cualquier otra cadena.
.replace(/\s+/g, '')
más a menudo. ¿Hay alguna diferencia entre eso y mi respuesta?
.replace(' ','')
funcionaría. ¡Muy apreciado!
+
tiene solo 60 votos si alguien quiere acreditarlo también stackoverflow.com/a/5964427/4258817
.replace('/\s+/g', '')
porque intentará encontrar esa cadena literal. Esto me hizo tropezar antes ...
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
¡Dos formas de hacer esto!
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 bits), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64 bits)):
Cadena corta similar a los ejemplos de la pregunta OP
La solución más rápida en todos los navegadores es / /g
(regexp1a): Chrome 17.7M (operación / seg), Safari 10.1M, Firefox 8.8M. La split-join
solución más lenta para todos los navegadores fue la solución. Cambiar a
\s
o add +
o i
de expresión regular ralentiza el proceso.
Para una cadena de aproximadamente ~ 3 millones de caracteres los resultados son:
Puede ejecutarlo en su máquina: https://jsperf.com/remove-string-spaces/1
Siguiendo la respuesta de @rsplak: en realidad, usar el modo dividir / unir es más rápido que usar regexp. Ver el caso de prueba de rendimiento
Entonces
var result = text.split(' ').join('')
opera 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 interactúan con los usuarios, eso es importante.
Por otro lado, \s+
maneja una mayor variedad de caracteres espaciales. Entre con \n
y \t
, también coincide con el \u00a0
carácter, y eso es lo que
se entrega cuando se usa el texto textDomNode.nodeValue
.
Entonces, creo que la conclusión aquí se puede hacer de la siguiente manera: si solo necesita reemplazar espacios ' '
, use dividir / unir. Si puede haber diferentes símbolos de clase de símbolo , usereplace(/\s+/g, '')
way faster
. ejecuté la prueba y es solo 2.19% más rápido, en mi Firefox 61.
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);
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 usa 'g' o 'gi' para eliminar espacios, ambos se comportan igual.
Si usamos 'g' en la función de reemplazo, verificará la coincidencia exacta. pero si usamos 'gi', ignora la sensibilidad a mayúsculas y minúsculas.
para referencia haga clic aquí .
Regex + Reemplazar ()
Aunque la expresión regular puede ser más lenta, en muchos casos de uso, el desarrollador solo manipula unas pocas cadenas a la vez, por lo que considerar la velocidad es irrelevante. A pesar de que / / es más rápido que / \ s /, tener '\ s' explica lo que le está sucediendo a otro desarrollador, quizás con mayor claridad.
let string = '/var/www/site/Brand new document.docx';
let path = string.replace(/\s/g, '');
// path => '/var/www/site/Brandnewdocument.docx'
Split () + Join ()
El uso de Split + Join permite una mayor manipulación encadenada de la cadena.
let string = '/var/www/site/Brand new document.docx';
let path => string.split('').map(char => /(\s|\.)/.test(char) ? '/' : char).join('');
// "/var/www/site/Brand/new/document/docx";
" ahm ed ".split('').filter(e => e.trim().length).join('')