Nik*_*des 32 javascript ecmascript-6
如何在ES6中编写一个模板文字,其中包含反引号(`)及其自身(即嵌套反引号).
例如:
var query = `
UPDATE packet
SET
`association` = "3485435",
`tagname` = "associated"
`
Run Code Online (Sandbox Code Playgroud)
我需要它的原因:
在我上面的代码示例中很明显.
我正在尝试构建node-mysql查询Strings,并将它们存储在一个变量中,以便将它们传递给mySQL.mySQL查询语法要求返回UPDATE样式查询.
我可以让它们看起来整洁的唯一方法是使用模板文字,否则使用常规单行字符串的查询看起来很糟糕,因为在某些情况下它们最终会很长.
我也想避免使用终止行,\n因为它很麻烦.
tt9*_*tt9 35
来自ES6 In Depth:Jason Orendorff的模板字符串:
如果你需要在模板字符串中写一个反引号,你必须使用反斜杠来转义它:与它
`\``相同"`".
您的查询应该是:
var query = `UPDATE packet
SET
\`association\` = "3485435",
\`tagname\` = "Simos"`
Run Code Online (Sandbox Code Playgroud)
Mic*_*ski 11
如果要在由撇号组成的字符串中使用撇号,可以使用反斜杠对其进行转义,如下所示:
'\''
Run Code Online (Sandbox Code Playgroud)
同样,如果您想在模板文字中使用反引号,则必须使用反斜杠对其进行转义:
`\``
Run Code Online (Sandbox Code Playgroud)
没有替换的模板定义为
NoSubstitutionTemplate ::
` TemplateCharactersopt `Run Code Online (Sandbox Code Playgroud)
模板字符所在的位置
TemplateCharacter ::
$ [lookahead ? { ]
\ EscapeSequence
LineContinuation
LineTerminatorSequence
SourceCharacter but not one of ` or \ or $ or LineTerminatorRun Code Online (Sandbox Code Playgroud)
因此,`不能是模板字符,除非您通过前面的方式将其转义\.
正如其他答案中所述,您可以`使用反斜杠转义反引号,例如\`.
var tripleBacktickExample = `
\`\`\`python
# This JavaScript string contains some example Markdown that
# uses triple-backticks to delimit a Python code block.
\`\`\`
`
Run Code Online (Sandbox Code Playgroud)
但是,如果您需要`````在模板文字中连续使用非常多的反引号,将它们放在占位符内的普通字符串中可能更具可读性,例如${'`````'}或${"`````"}。
var tripleBacktickExample = `
${'```'}python
# This JavaScript string contains some example Markdown that
# uses triple-backticks to delimit a Python code block.
${'```'}
`
Run Code Online (Sandbox Code Playgroud)
要转义所有特殊字符,而不仅仅是反引号:
let str = '`Hello`\\n${world}';
let escacped = str.replace(/\\|`|\$/g, '\\$&');
console.log(eval('`' + escaped + '`') === str); // test
Run Code Online (Sandbox Code Playgroud)
我需要这个来生成一些代码。这str是 JavaScript 文件的内容,目标是将这些内容放入另一个生成的 JavaScript 文件中的字符串文字变量中。
遗憾的是,似乎(2019 年)没有用于这种转义的原生 JavaScript 函数。需要替换的字符有:`、$和\。
| 归档时间: |
|
| 查看次数: |
13251 次 |
| 最近记录: |