EDIT : Ich habe mit diesem Dienstprogramm ein winziges NPM-Modul erstellt. Es funktioniert im Web und in Node und ich empfehle es über den Code in meiner folgenden Antwort, da es weitaus robuster ist. Außerdem können Zeilenumbrüche im Ergebnis beibehalten werden, wenn Sie sie manuell als eingeben \n
, und es werden Funktionen bereitgestellt , wenn Sie bereits Vorlagenliteral-Tags für etwas anderes verwenden: https://github.com/iansan5653/compress-tag
Ich weiß, dass ich zu spät komme, um hier zu antworten, aber die akzeptierte Antwort hat immer noch den Nachteil, dass Einrückungen nach dem Zeilenumbruch nicht zugelassen werden, was bedeutet, dass Sie immer noch keinen sehr gut aussehenden Code schreiben können, indem Sie einfach Zeilenumbrüchen entkommen.
Verwenden Sie stattdessen eine markierte Vorlagenliteralfunktion .
function noWhiteSpace(strings, ...placeholders) {
// Build the string as normal, combining all the strings and placeholders:
let withSpace = strings.reduce((result, string, i) => (result + placeholders[i - 1] + string));
let withoutSpace = withSpace.replace(/\s\s+/g, ' ');
return withoutSpace;
}
Dann können Sie einfach jedes Vorlagenliteral markieren, in das Zeilenumbrüche eingefügt werden sollen:
let myString = noWhiteSpace`This is a really long string, that needs to wrap over
several lines. With a normal template literal you can't do that, but you can
use a template literal tag to allow line breaks and indents.`;
Dies hat den Nachteil, dass möglicherweise ein unerwartetes Verhalten auftritt, wenn ein zukünftiger Entwickler nicht an die Syntax der markierten Vorlage gewöhnt ist oder wenn Sie keinen beschreibenden Funktionsnamen verwenden, dies jedoch die derzeit sauberste Lösung darstellt.