You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript多行模板字符串中插入反引号的报错解决咨询

修复方案

你的报错原因判断正确,JavaScript 模板字符串中嵌套使用反引号需要做转义处理,具体修复逻辑如下:

核心原理

外层模板字符串的反引号会被默认识别为字符串结束标记,你只需要给内层 String.raw 用到的所有反引号添加反斜杠 \ 转义即可。转义后的反引号不会打断外层模板字符串结构,模板字符串解析后会自动去掉转义符,生成的代码会完整保留你需要的 String.raw 语法,完全不影响后续逻辑执行。

修复后代码

const scriptTexta = document.createTextNode(`
function validate${currNum}() {

if (document.getElementById("btn${currNum}").checked) {
    adminmessages[${currNum}] = [String.raw\`${br[0]}\`,String.raw\`${br[1]}\`,String.raw\`true\`,String.raw\`\`];
} else {
    adminmessages[${currNum}] = [String.raw\`${br[0]}\`,String.raw\`${br[1]}\`,String.raw\`false\`,String.raw\`\`];
}
}
`);

额外注意事项

  • 如果你br数组的元素中本身包含反斜杠\,需要提前对br元素内的反斜杠做二次转义,避免模板字符串解析时自动消耗掉反斜杠,导致String.raw拿到的内容不符合预期。
  • 你原代码中的 &quot; 是HTML实体编码,如果你是直接在JS文件中写这段代码,直接替换为普通双引号"即可,如果是写在HTML的<script>标签内,保留实体编码也可以正常运行。

内容的提问来源于stack exchange,提问作者CoderPro1000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:06:03