2016-05-19 8 views
44

In es6 Vorlage Literale, wie kann man ein langes Vorlage Literal zu mehrzeilig umbrechen, ohne eine neue Zeile in der Zeichenfolge zu erstellen?Wrap lange Vorlage literal Zeile zu mehrzeilig ohne Erstellen einer neuen Zeile in der Zeichenfolge

Zum Beispiel, wenn Sie dies tun:

const text = `a very long string that just continues 
and continues and continues` 

Dann wird es eine neue Linie Symbol auf den String erstellen, wie es zu interpretieren eine neue Linie zu haben. Wie kann man das lange Vorlagenliteral mit mehreren Zeilen umhüllen, ohne den Zeilenumbruch zu erstellen?

Antwort

65

Wenn Sie einführen ein line continuation (\) an der Stelle des Newline im wörtlichen, wird es nicht eine neue Zeile auf Ausgabe erstellen:

const text = `a very long string that just continues\ 
and continues and continues`; 
console.log(text); // a very long string that just continuesand continues and continues 
+0

nicht zu funktionieren scheint, wenn ich Variablen verwenden =/ –

+1

nicht sicher, ob ich verstehe, was Sie meinen. Können Sie ein [REPL-Beispiel] (https://babeljs.io/repl/) bereitstellen? – CodingIntrigue

+1

Nicht einfach in meinem Fall, da verschiedene Variablen aus coffeescript Config-Dateien usw. entnommen werden .. mm .. es scheint, dass es sonst funktioniert, aber aus irgendeinem Grund fügt es leeren Speicherplatz –

-2

Die Lösung von @CodingIntrigue vorgeschlagen wird, nicht für mich arbeiten auf Knoten 7. Nun, es funktioniert, wenn ich keine Zeile Fortsetzung auf der ersten Zeile verwenden, schlägt es andernfalls fehl.

Dies ist wahrscheinlich nicht die beste Lösung, aber es funktioniert ohne Probleme:

(` 
    border:1px solid blue; 
    border-radius:10px; 
    padding: 14px 25px; 
    text-decoration:none; 
    display: inline-block; 
    text-align: center;`).replace(/\n/g,'').trim(); 
13

Dies ist ein altes. Aber es kam auf. Wenn Sie Leerzeichen im Editor lassen, werden sie dort eingefügt.

if 
    const text = `a very long string that just continues\ 
    and continues and continues`; 

tun nur das normale + Symbol

if 
    const text = `a very long string that just continues` + 
    `and continues and continues`; 
Verwandte Themen