javascript - 替换 "with\"

标签 javascript regex json string

我正在尝试用 \" 替换所有 " 并用 JSON 解析字符串,但浏览器抛出错误 SyntaxError: JSON Parse error: Unrecognized token '\'.

下面是代码。字符串 a 的 JSON.parsed 很好,但是尽管我将字符串 b 中的所有 " 替换为 \",因此它应该与字符串 a 相同,但解析失败。我在 JSBIN 中有代码.

var a = '[\"{\\"objects\\":[],\\"background\\":\\"#fff\\"}\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]';

var b = '["{\"objects\":[],\"background\":\"#fff\"}","","","","","","","","",""]';

// Replace " with \"
// Charcode 92 is \
b = b.replace('"', String.fromCharCode(92)+'"', "g");

a = JSON.parse(a);
console.log(a);
b = JSON.parse(b);
console.log(b);

知道吗,我如何使用 JSON.parse 解析字符串 b?如果我手动将所有 " 替换为 \",它会很好地解析,但我正在寻求自动化的方式。

最佳答案

重点是使用 2 \:

b = b.replace(/"/g,'\\"')

结果是:

[\"{\"objects\":[],\"background\":\"#fff\"}\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]

正如@isherwood 所说:

To be more clear, the backslash is an escape character, so you need to double it so there's an actual character behind the escape.

关于javascript - 替换 "with\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21662695/

相关文章:

javascript - 如何检测 UIWebView 何时开始选择文本?

javascript - 隐藏的 div - 使用样式显示 none + javascript 减少延迟

python - 使用 Python 问题解析多行 JSON 文件

c# - 为什么会有 JConstructor?

javascript - 在 javascript 的正则表达式中传递变量以进行字符串匹配

javascript - 如何通过单击一个来选择两个表格单元格?

regex - 用于修改开头仅包含单个单词的行的正则表达式

android - 动态添加单选按钮单选

javascript - 我正在尝试在 javascript Controller 中使用正则表达式验证字符串?

regex - 重新格式化数字,例如 1111-2222-3333-4444 从左到右开始