代码之家  ›  专栏  ›  技术社区  ›  Lime

string.raw输出“$”和baccticks

  •  0
  • Lime  · 技术社区  · 6 年前

    我正在使用 String.raw 保存内容以保存包含以下值的regex ${somevalue} 我有一个经验。它起作用,除非似乎没有办法逃脱。 ${} 或者倒计时。 例如,这不起作用。

    String.raw`${}`  // error
    String.raw`$\{}`  // wrong output
    String.raw`\${}`  // wrong output
    String.raw`\``    /wrong output
    

    不幸的是,我能想到的最佳解决方案是以下。

    String.rawer= (s)=>{return s.raw[0].replace(/\\\{/g,"{").replace(/\\`/g,'`').replace(/\\\\$/,'\\')}
    

    有没有一个不需要定义我自己的函数和随后的函数调用的不那么难看的解决方案?

    1 回复  |  直到 6 年前
        1
  •  2
  •   chevybow    6 年前

    我觉得这个比你的干净

    console.log(String.raw`${"${}"}`)

    你必须把 ${} A内 ${} 在里面加上引号。但这是一个令人讨厌的问题 简单的 解决的办法,我知道无论如何。