如何忽略特定的字符串插值并在JavaScript模板文本中使用纯文本?

如何忽略特定的字符串插值并在JavaScript模板文本中使用纯文本?,javascript,template-literals,Javascript,Template Literals,我必须通过代码设置配置文件并传入一些变量 const confEntry = String.raw` [${internal}] ... user = bg${internal} auth_user = bg${internal} ... secret = ${password} ... from_sip_src_setting=from_display,sip_from_user_setting=${account_username} ... `; 说到 from_sip_src_setti

我必须通过代码设置配置文件并传入一些变量

const confEntry = String.raw`
[${internal}]
...
user = bg${internal}
auth_user = bg${internal}
...
secret = ${password}
...
from_sip_src_setting=from_display,sip_from_user_setting=${account_username}
...
`;
说到

from_sip_src_setting=from_display,sip_from_user_setting=${account_username}

我不想传入变量<代码>=${account\u username}应以纯文本形式编写。显然,我得到了错误

未定义帐户\u用户名


我怎么能忽略这一点并为这个特定部分编写纯文本呢?

如果你想在最后一个字符串中保留
${}
,你可以使用反斜杠
\
转义美元符号、大括号或两者,这将打破
${}
模式,它将被视为常规文本:

const-world='world';

log(`${hello}$\{world\}\$\{hello\}${world}`)
如果要在最后一个字符串中保留
${}
,可以使用反斜杠
\
转义美元符号、大括号或两者,这将打破
${}
模式,并将其视为常规文本:

const-world='world';

log(`${hello}$\{world\}\$\{hello\}${world}`)您需要对大括号进行转义,以便它不会被解释为字符串文字


因此,不是
${account\u username}
而是
$\{account\u username\}

您需要将花括号转义,以便它不会被解释为字符串文字

因此,它不是
${account\u username}
而是
$\{account\u username\}

用于获取模板的原始字符串形式 处理字符串,即替换(例如${foo}),但是 转义(例如。\n)不可用

String.raw不处理转义

let a=String.raw`hello\n你好吗`
让b=`你好\n你好吗`
console.log(a)//原始字符串输出
console.log(b)//模板字符串输出
用于获取模板的原始字符串形式 处理字符串,即替换(例如${foo}),但是 转义(例如。\n)不可用

String.raw不处理转义

let a=String.raw`hello\n你好吗`
让b=`你好\n你好吗`
console.log(a)//原始字符串输出

console.log(b)//模板字符串输出
转义大括号,如
$\{account\u username\}
是的,这可以工作,但它会将
$\{account\u username\}
写入文件,而不是
${account\u username}
。我能解决这个问题吗?避开像
$\{account\u username\}
这样的大括号是的,它可以工作,但是它会将
$\{account\u username\}
写入文件,而不是
${account\u username}
。我能修好吗?我什么时候修好usehttps://jsfiddle.net/2q46gtbx/1/ 它很好用。当我使用整个配置时,它不会t@MHComputech,我添加了一个使用String.raw的示例usehttps://jsfiddle.net/2q46gtbx/1/ 它很好用。当我使用整个配置时,它不会t@MHComputech,我添加了一个使用String.raw的示例。谢谢您的帮助,但这无法正常工作。转义字符也会被写下来,谢谢你的帮助,但这并不能正常工作。转义字符也会被写下来