【问题标题】:unescaping \" in javascript在 javascript 中转义 \"
【发布时间】:2021-04-05 19:24:32
【问题描述】:

我得到一个返回给我的 JSON 对象,如下所示:

result: {
 image: "..."
 title: "text text \"text\""
}

我正在使用 underscore.js 来呈现模板,但是当它显示标题时,它在文本中包含 \"。

例如文本文本\“文本\”

如何在显示前取消双引号的转义?

谢谢

【问题讨论】:

  • 这不是 JSON 对象的真实表示。实际的 JSON 必须具有 text text \\\"text\\\" 才能产生您描述的行为。问题是它被转义了两次,并且只有(并且正确地)未转义一次。找出第二次转义的来源。
  • 这不是 JSON 对象。 JSON 只是文本。它们不是 JSON 中的文字。 JavaScript 对象中有文字,但没有 JSON。
  • 这肯定不是 JSON。您如何检索您发布的表示?首先数据是如何产生的?如果输出是\",那么这意味着字符串实际上包含一个 \ 。解决这个问题的正确方法是修复数据生成/存储。
  • 问题中的 JSON 是返回给浏览器的内容。字符串可能被双倍转义。目前正在调查这种可能性。谢谢大家的信息!

标签: javascript json escaping


【解决方案1】:

.replace 可以做到:

text = result.text.replace(/\\([\\"])/g, '$1');

【讨论】:

  • 我修好了。 $1 是 [\\"]
【解决方案2】:

这个link 可能会有所帮助,但我在您的 cmets 中看到您获得的数据与您提到的完全相同,所以:

var result = { image: "...", title: "text text \"text\"" }

alert (result.title.toString().replace(/"/g, ''));

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 2010-10-27
    • 2011-09-07
    • 2015-05-31
    • 2010-11-13
    • 1970-01-01
    • 2011-04-11
    • 2012-03-31
    相关资源
    最近更新 更多