Ich habe Zeichenfolgen mit zusätzlichen Leerzeichen. Jedes Mal, wenn es mehr als nur ein Leerzeichen gibt, möchte ich, dass es nur eines ist.
Jemand? Ich habe versucht, Google zu durchsuchen, aber nichts hat bei mir funktioniert.
Vielen Dank
javascript
string
trim
Vorabend
quelle
quelle
Antworten:
Etwas wie das:
quelle
Sie können String erweitern, um diese Verhaltensweisen als Methoden zu implementieren, wie in:
Auf diese Weise können Sie jetzt die folgenden eleganten Formen verwenden, um die gewünschten Zeichenfolgen zu erstellen:
quelle
Die Verwendung eines regulären Ausdrucks mit der Ersetzungsfunktion führt den Trick aus:
quelle
Hier ist eine Nicht-Regex-Lösung (nur zum Spaß):
Es teilt die Zeichenfolge durch Leerzeichen auf , entfernt alle leeren Array-Elemente aus dem Array (diejenigen, die mehr als ein einzelnes Leerzeichen waren) und fügt alle Wörter erneut zu einer Zeichenfolge mit einem einzelnen Leerzeichen dazwischen zusammen.
quelle
Ich nehme an, Sie möchten Leerzeichen vom Anfang und / oder Ende der Zeichenfolge entfernen (anstatt alle Leerzeichen zu entfernen ?
In diesem Fall benötigen Sie einen regulären Ausdruck wie folgt:
Dadurch werden alle Leerzeichen am Anfang oder Ende der Zeichenfolge entfernt. Wenn Sie nur Leerzeichen vom Ende abschneiden möchten, sieht der reguläre Ausdruck stattdessen folgendermaßen aus:
Hoffentlich hilft das.
quelle
''
anstelle von sein' '
.jQuery.trim () funktioniert gut.
http://api.jquery.com/jQuery.trim/
quelle
Ich weiß, dass ich zu einem Thema keine Nekromantie haben sollte, aber angesichts der Details der Frage erweitere ich sie normalerweise auf:
Dafür verwende ich Code wie diesen (die Klammern auf dem ersten regulären Ausdruck sind nur da, um den Code ein bisschen lesbarer zu machen ... reguläre Ausdrücke können schmerzhaft sein, wenn Sie nicht mit ihnen vertraut sind):
Der Grund dafür ist, dass die Methoden für das String-Objekt ein String-Objekt zurückgeben, für das Sie eine andere Methode aufrufen können (genau wie jQuery und einige andere Bibliotheken). Viel kompaktere Codierungsmethode, wenn Sie mehrere Methoden nacheinander für ein einzelnes Objekt ausführen möchten.
quelle
var x = "Test Test Test" .split ("") .join (""); Alarm (x);
quelle
Versuche dies.
das Ergebnis wird sein
Was hier passiert ist, ist, dass es die Außenräume zuerst mit und
trim()
dann die Innenräume mit trimmt.replace(/\s+/g, ' ')
.quelle
Wenn Sie den Benutzer einschränken möchten, Leerzeichen im Namen anzugeben, erstellen Sie einfach eine if-Anweisung und geben Sie die Bedingung an. wie ich es getan habe:
quelle
Wie wäre es mit diesem?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
Ausgänge
"my test string with crazy stuff is cool "
Dieser wird auch alle Tabs los
quelle
\s
. Unnötig komplexer Regex, könnte genauso gut einfach schreiben/\s+/g
.