salto - manejo de cadenas en javascript
¿Cómo eliminar espacios de una cadena usando JavaScript? (7)
¿Cómo eliminar espacios en una cadena? Por ejemplo:
Entrada: ''/var/www/site/Brand new document.docx''
Salida: ''/var/www/site/Brandnewdocument.docx''
Gracias
¿Esta?
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 , este:
str = str.replace(//s+/g, '''');
Es una mejor solución. Produce el mismo resultado, pero lo hace más rápido.
El regex
/s
es la expresión regular para "espacios en blanco", y g
es la bandera "global", lo que significa que coincida con TODOS (espacios en blanco).
Una gran explicación para +
se puede encontrar aquí .
Como nota al margen, puede reemplazar el contenido entre las comillas simples a lo que desee, de modo que puede reemplazar los espacios en blanco con cualquier otra cadena.
Puedes intentar usar esto:
input.split('' '').join('''');
Siguiendo la respuesta de @rsplak: en realidad, usar el modo de división / unión es más rápido que usar regexp. Ver el caso de prueba de rendimiento.
Asi que
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 se interactúa con los usuarios, eso es importante.
Por otro lado, /s+
maneja una variedad más amplia de caracteres espaciales. Entre con /n
/t
, también coincide con el carácter /u00a0
, y eso es lo que
está activado, al obtener texto utilizando textDomNode.nodeValue
.
Así que creo que la conclusión aquí se puede hacer de la siguiente manera: si solo necesita reemplazar espacios '' ''
, use split / join. Si puede haber diferentes símbolos de la clase de símbolo , utilice replace(//s+/g, '''')
MÁS CORTO Y MÁS RÁPIDO : str.replace(/ /g, '''');
Punto de referencia:
Aquí están 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)):
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 más lenta para todos los navegadores fue la solución de split-join
. Cambio a
/s
o agregar +
oi a regexp ralentiza el procesamiento.
Puede ejecutarlo en su máquina: https://jsperf.com/remove-string-spaces
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!
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 del caso.
para referencia haga clic aquí .
var input = ''/var/www/site/Brand new document.docx'';
//remove space
input = input.replace(//s/g, '''');
//make string lower
input = input.toLowerCase();
alert(input);