san*_*a-p 1 javascript variables ecmascript-6
我正在将我的多行变量更改为Template Literals令人惊讶,但后来我注意到我所做的缩进被转换(缩小)到\n我在原始代码上做的缩进.我怎么能避免这种情况?
例如:
var $div = $(`<div class='proj' id='projects'>
<div class='bot-nav'>${txt}</div>
</div>`);
Run Code Online (Sandbox Code Playgroud)
它被转换为:
var $div = $("<div class='proj' id='projects'>\n <div class='bot-nav'>"+txt+"</div>\n </div>");
Run Code Online (Sandbox Code Playgroud)
我想要这个:
var $div = $("<div class='proj' id='projects'><div class='bot-nav'>"+txt+"</div></div>");
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
虽然使用.replace(像其他答案中建议的那样)会起作用,但这并不是一种很酷的新方式;)
我认为您正在寻找的是ES2015中引入的文字标签功能(又名"标签模板").
这里有一堆:
https://github.com/declandewet/common-tags
你可能想要oneLine(或oneLineTrim):
oneLine`
foo
bar
baz
`
// "foo bar baz"
Run Code Online (Sandbox Code Playgroud)
注意:oneLine显然,replace内部使用.
let literal = `template literal
string so many holes`;
literal.replace(/\s+/g, ' ');
Run Code Online (Sandbox Code Playgroud)
这会将一个或多个空格替换为一个空格。