2013-06-07 21 views
14

welche Funktion wird entfernen Sie zusätzliche Leerzeichen in Zeichenfolge JavaScript

 this contains  spaces
in
this contains spaces
mit javascript?

Ich habe das folgende versucht, mit ähnlichen SO-Fragen, aber konnte dies nicht zum Funktionieren bringen.

var string = " this contains spaces "; 

newString = string.replace(/\s+/g,''); // "thiscontainsspaces" 
newString = string.replace(/ +/g,''); //"thiscontainsspaces" 


die Frage Edited mehr auf dem JavaScript-Aspekt zu konzentrieren. Gibt es eine einfache pure Javascript-Möglichkeit, um dies zu erreichen?

+1

Betrachten Sie die Verwendung von underscore.string, es gibt viele saubere Methoden wie diese, die Ihnen helfen werden, erfordert keine Unterstreichung. – adrian

Antwort

38

Sie nah dran sind.

Denken Sie daran, dass replaceersetzt den gefundenen Text mit dem zweiten Argument. Also:

newString = string.replace(/\s+/g,''); // "thiscontainsspaces" 

Findet eine beliebige Anzahl von aufeinanderfolgenden Leerzeichen und entfernt sie. Versuchen Sie stattdessen, sie durch einen einzelnen Platz zu ersetzen!

newString = string.replace(/\s+/g,' ').trim(); 
+0

danke! das macht Sinn ... es fehlt übrigens eine Funktion zum trimmen (erste und letzte einzelne Leerzeichen) :) –

+2

Stimmt, aber Sie wissen was zu tun ist :) – Hamish

11
string.replace(/\s+/g, ' ').trim() 
4

dachte ich noch einen Ausweg, aber neugierig bin, wenn es ein besserer Weg ist ...

string.replace(/\s+/g,' ').trim() 
+0

In ein Byte-Array konvertieren, manuell durchlaufen und in ein neues Byte-Array ausgeben. Konvertiere das neue Array in eine Zeichenkette .... besser? – dlamblin

+0

Das ist reines JS, nicht jQuery. –

Verwandte Themen