String.raw
非常有用。例如:
let path = String.raw`C:\path\to\file.html`
但是,当模板字符串的最后一个字符为\
时,它将成为语法错误。
let path = String.raw`C:\path\to\directory\`
未捕获的SyntaxError:未终止的模板文字
暂时,我使用这种方法。
let path = String.raw`C:\path\to\directory\ `.trimRight()
我可以使用\
编写最后一个字符为String.raw
的模板字符串吗?
答案 0 :(得分:3)
以下是一些可能的解决方法。我最喜欢的可能是创建一个自定义模板标记dir
来为您解决问题。我认为它使语法更清晰,更具语义性。
let path
// Uglier workarounds
path = String.raw `C:\path\to\directory${`\\`}`
path = String.raw `C:\path\to\directory`+`\\`
path = `C:\\path\\to\\directory\\`
// Cleanest solution
const dir = ({raw}) => raw + `\\`
path = dir `C:\path\to\directory`
console.log(path)
答案 1 :(得分:0)
根据PHP bug-tracker,除了模板字符串中的\ $ \ {和\`之外,转义序列保持不变。因此,人们无法摆脱逃避角色。基于此,看起来您的解决方案是实现目标的最佳方式。