Rimuovi gli spazi bianchi all'interno di una stringa in javascript


101

Ho letto questa domanda su javascript trim, con una risposta regex.

Quindi mi aspetto che il trim rimuova lo spazio interno tra Hello e World.

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

MODIFICATO

Perché me lo aspettavo !?

Senza senso! Ovviamente il trim non rimuove gli spazi interni !, solo quelli iniziali e finali, è così che funziona il trim, quindi questa era una domanda molto sbagliata, mi scuso.


10
trim rimuove gli spazi all'inizio e alla fine di una stringa
Manse

3
Trim rimuove gli spazi bianchi prima e dopo una stringa. Hello Worldè già "rifilato".
Rocket Hazmat

@limelights per mostrare "HelloWorld" invece di "Hello World"
Hernán Eche,

4
@void: non è "trimming", è un problema diverso.
Rocket Hazmat

Risposte:


236

Per la rimozione di caratteri spaziali utilizzare

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

per tutti gli spazi bianchi usa il suggerimento di Rocket nei commenti qui sotto!


137
Potresti volerlo usare .replace(/ /g, '')se c'è più di una volta lo spazio.
Rocket Hazmat

@ Rocket, questo è assolutamente vero, non ho ancora una risposta aggiornata! Grazie! :)
Henrik Andersson

47
@Juhana: Se si desidera rimuovere altri spazi bianchi troppo poi fare: .replace(/\s/g, '').
Rocket Hazmat

12
@RocketHazmat yes! la risposta corretta! anche se questo potrebbe essere leggermente più efficiente: str.replace (/ \ s + / g, '')
jackocnr

3
@PitchiahNatarajan abbinerà \sspazi, tabulazioni e nuove righe.
Rocket Hazmat


1

È possibile utilizzare il metodo di sostituzione delle stringhe con un'espressione regolare.

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

Il metodo replace () restituisce una nuova stringa con alcune o tutte le corrispondenze di un modello sostituite da una sostituzione. Il modello può essere una stringa o una RegExp

RegExp

  • / / - Espressione regolare che corrisponde agli spazi

  • g - Bandiera globale; trova tutte le corrispondenze invece di fermarsi dopo la prima


1

Puoi usare

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

trim()rimuove solo gli spazi finali sulla stringa (primo e ultimo della catena). In questo caso, questa regExp è più veloce perché puoi rimuovere uno o più spazi contemporaneamente.

Se modifichi la stringa vuota sostitutiva in "$", la differenza diventa molto più chiara:

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$

Confronto delle prestazioni: /\s+/gè più veloce. Vedi qui: http://jsperf.com/s-vs-s


La risposta attualmente accettata fa la stessa cosa. Si prega di presentare alcuni test pertinenti che indicano che questo è più veloce di quella risposta di qualcosa di più di nanosecondi.
Scimmia eretica

@HereticMonkey Aggiornato!
ArlanG
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.