2016-07-27 15 views
0

var str = 'abc 123 hello xyz';concat Zeichenfolge mit Javascript

Wie oben Zeichenfolge abc123helloxyz verketten? Ich habe versucht zu trimmen, aber es blieben noch Leerzeichen zwischen den Zeichen. Ich kann auch nicht split ('') benutzen, da der Platz nicht irgendwann ist.

+2

'str.replace (/ \ s +/g "");' – Downgoat

+0

die übrigens 'concat' ist nicht der richtige Ausdruck. concat ist eine Abkürzung für concatenate - um sich zu verbinden, in Serie oder Kette zu vereinigen, und in der Programmierung, bezieht sich normalerweise auf das Hinzufügen von Sachen zum "Ende" der vorhandenen Sachen –

Antwort

2

Sie könnten eine Regex erfolgreich verwenden. \s prüft auf das Auftreten von weiß beabstandeten Zeichen. + ist für mehr als einmaliges Auftreten von Räumen verantwortlich. und `/ g ', um zu überprüfen, ob die Suche fortgesetzt wird, auch nachdem das erste Vorkommen gefunden wurde.

var str = 'abc 123 hello  xyz'; 
 
str = str.replace(/\s+/g, ""); 
 
console.log(str);

+0

\ s für Leerzeichen? –

+0

Ja, \ s stimmt mit jedem Leerzeichen überein [\ r \ n \ t \ f]. Jetzt bedeutet es nur ein Zeichen. also fügen wir \ s + hinzu, um anzuzeigen, dass es viele angrenzende Räume geben kann, die alle finden. – Ayan

+0

Probieren Sie dieses Regex-Tool aus. https://regex101.com/ fügen Sie den Regex dort ein, spielen Sie damit und sehen Sie, wie es mit der Erklärung variiert. – Ayan

1

Verwenden Sie eine Regex.

var newstr = str.replace(/ +/g, '') 

Dadurch wird eine beliebige Anzahl von Leerzeichen durch eine leere Zeichenfolge ersetzt. Sie können auch erweitern, um andere Leerzeichen enthalten wie so

var newstr = str.replace(/[ \n\t\r]+/g, '') 
1

die Räume im String ersetzen:

str = str.replace(" ", ""); 

Edit: wie mir zu Ohren gekommen ist, Dies ersetzt nur das erste Auftreten des Leerzeichen. Die Verwendung von Regex gemäß den anderen Antworten ist in der Tat der richtige Weg, dies zu tun.

+1

Dies ersetzt nur das erste Leerzeichen. – nnnnnn

+0

Sie haben eigentlich recht. Ich werde diese Antwort bearbeiten. – which1ispink

0

der sauberste Weg ist der folgende regex zu verwenden:

\s bedeutet "eine Leerstelle", und \s+ bedeutet "ein oder mehrere Leerzeichen".

/g Flag bedeutet (ersetzen Sie alle Vorkommen) und durch die leere Zeichenfolge ersetzen.

var str = 'abc 123 hello  xyz'; 
 
console.log("Before: " + str); 
 
str = str.replace(/\s+/g, ""); 
 
console.log("After: " + str);