\ u在JavaScript String.raw`template literal`中

时间:2016-09-03 19:40:09

标签: javascript escaping rawstring template-strings

如何避免将\u解释为字符转义序列?

在我的JavaScript项目中,我需要一些开头LaTeX命令的字符串文字。在我将每个反斜杠转义(\\)之前,我最近在JavaScript中发现了原始字符串。如果我可以在源代码中使用 exact 字符串文字,那就太好了。不幸的是,\usepackage{indentfirst}现在存在问题。 \u被解释为字符转义序列,这当然不是我想要的。有没有办法避免这种行为,或者这不是String.raw的地方?

简要代码:

var title="title", author="author";

console.log(String.raw`
\documentclass{book}

\title{${title}}
\author{${author}}
\date{}

\usepackage{indentfirst}

\begin{document}
\maketitle{}
\tableofcontents{}
`);

我通过用`+"\\usepackage{indentfirst}"+String.raw`替换违规行来解决这个问题,但当然这不是很清楚。

1 个答案:

答案 0 :(得分:2)

您可以使用\u语法替换\u005Cusepackage{indentfirst},甚至\x5Cusepackage{indentfirst}

5C\对应。

另一种选择可能是对表达式使用美元符号和花括号表示法。 ${'\\'}usepackage{indentfirst}