如何打印' \ 1'使用es6 String.raw

时间:2016-08-03 08:33:48

标签: javascript ecmascript-6

String.raw似乎是编写嵌入式命令的正确方法,如

const command = String.raw`sed -n 's/${hash} \(.*\)/\1/p'

但它没有用,因为\1无法用String.raw编写,问题如下所示:

console.log(String.raw`\1`)
=>SyntaxError: Octal literals are not allowed in template strings.

console.log(String.raw`\\1`)
\\1

1 个答案:

答案 0 :(得分:1)

我能看到的唯一方法就是

let x = '\\1'
const command = String.raw`sed -n 's/${hash} \(.*\)/${x}/p'`

@HBP几乎在评论中做出了正确的调用

const command = String.raw`sed -n 's/${hash} \(.*\)/${'\\1'}/p'`

看起来是理想的