EDIT : Ben bu yardımcı programı ile küçük bir NPM modülü yaptım. Web'de ve Düğümde çalışır ve çok daha sağlam olduğu için aşağıdaki cevabımdaki kod üzerinden tavsiye ederim. Ayrıca, yeni satırları manuel olarak girerseniz sonuçtaki satırsonlarının korunmasına izin verir \n
ve başka bir şey için şablon değişmez etiketlerini zaten kullandığınızda işlevler sağlar: https://github.com/iansan5653/compress-tag
Burada cevaplamak için geç kaldığımı biliyorum, ancak kabul edilen cevabın satır sonundan sonra girintilere izin vermeme dezavantajı var, bu da sadece yeni satırlardan kaçarak çok hoş görünümlü kod yazamayacağınız anlamına geliyor.
Bunun yerine, neden etiketli şablon değişmez işlevini kullanmıyorsunuz ?
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;
}
Ardından, satır sonları olmasını istediğiniz herhangi bir şablon değişmezini etiketleyebilirsiniz:
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.`;
Bu, gelecekteki bir geliştirici etiketli şablon sözdizimine kullanılmazsa veya açıklayıcı bir işlev adı kullanmazsanız, ancak şimdilik en temiz çözüm gibi geliyorsa, beklenmedik davranışlara sahip olmanın dezavantajı vardır.