首页 > 解决方案 > String.raw 输出 "${" 和 bacticks

问题描述

String.raw用来保存内容以保存包含值的正则表达式,例如${somevalue}我拥有的 RegExp 中的值。它有效,除非似乎无法逃脱${}或反引号。例如,这不起作用。

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(/\\\\$/,'\\')}

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

标签: javascript

解决方案


我认为这看起来比你所拥有的更干净

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

您必须将${}a 放在里面${}并在里面加上引号。但这是一个令人讨厌的问题,实际上并没有一个简单的解决方案,无论如何我都知道。


推荐阅读