Eliminar espacios en blanco dentro de una cadena en javascript


101

He leído esta pregunta sobre el recorte de JavaScript, con una respuesta de expresión regular.

Luego espero que el recorte elimine el espacio interior entre Hello y World.

function myFunction() {
    alert("Hello World ".trim());
}

EDITADO

¿¡Por qué esperaba eso !?

¡Disparates! ¡Obviamente el recorte no elimina los espacios interiores !, solo los iniciales y finales, así es como funciona el recorte, entonces esta fue una pregunta muy incorrecta, mis disculpas.


10
trim elimina los espacios en blanco del principio y el final de una cadena
Manse

3
Recortar elimina los espacios en blanco antes y después de una cuerda. Hello Worldya está "recortado".
Rocket Hazmat

@limelights para mostrar "HelloWorld" en lugar de "Hello World"
Hernán Eche

4
@void: Eso no es "recortar", es un problema diferente.
Rocket Hazmat

Respuestas:


236

Para uso de eliminación de caracteres espaciales

"hello world".replace(/\s/g, "");

para todos los espacios en blanco, use la sugerencia de Rocket en los comentarios a continuación.


137
Es posible que desee utilizar .replace(/ /g, '')si hay más de una vez espacio.
Rocket Hazmat

@Rocket, eso es absolutamente cierto, ¡todavía no he actualizado la respuesta! ¡Gracias! :)
Henrik Andersson

47
@Juhana: Si desea eliminar otros espacios en blanco a continuación, hacer demasiado: .replace(/\s/g, '').
Rocket Hazmat

12
@RocketHazmat ¡sí! ¡La respuesta correcta! aunque esto podría ser un poco más eficiente: str.replace (/ \ s + / g, '')
jackocnr

3
@PitchiahNatarajan \scoincidirá con espacios, tabulaciones y nuevas líneas.
Rocket Hazmat


1

Puede utilizar el método de sustitución de cadenas con una expresión regular.

"Hello World ".replace(/ /g, "");

El método replace () devuelve una nueva cadena con algunas o todas las coincidencias de un patrón reemplazadas por un reemplazo. El patrón puede ser una cadena o una expresión regular

RegExp

  • / / - Espacios coincidentes de expresiones regulares

  • g - Bandera global; encontrar todas las coincidencias en lugar de detenerse después de la primera coincidencia


1

Puedes usar

"Hello World ".replace(/\s+/g, '');

trim()solo elimina los espacios finales en la cadena (primero y último en la cadena). En este caso, esta expresión regular es más rápida porque puede eliminar uno o más espacios al mismo tiempo.

Si cambia la cadena vacía de reemplazo a '$', la diferencia se vuelve mucho más clara:

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // $Q$W$E$R$TY$

Comparación de rendimiento: /\s+/ges más rápida. Vea aquí: http://jsperf.com/s-vs-s


La respuesta actualmente aceptada hace lo mismo. Presente algunas pruebas relevantes que indiquen que esto es más rápido que esa respuesta en algo más de nanosegundos.
Heretic Monkey

@HereticMonkey ¡Actualizado!
ArlanG
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.