【问题标题】:Regular expression to escape inner double quotes in json正则表达式转义json中的内部双引号
【发布时间】:2017-01-19 23:24:15
【问题描述】:

我有一个问题,我想知道是否有人可以帮助我用常规表达式替换它:

{"name": "Raul "the cat" Gonzalez"}

到这里:

{"name": "Raul \"the cat\" Gonzalez"}

为了在服务器端进行验证,我需要这个,因为我正在使用 Web 服务将 JSON 保存到数据库中,并且我希望在我的 Web 服务中具有这种灵活性。我的意思是我希望能够发送这个:

{"name": "Raul "the cat" Gonzalez"}

然后逻辑变成:

{"name": "Raul \"the cat\" Gonzalez"} //inner quotes escaped

【问题讨论】:

  • 你的例子甚至不是一个有效的 json 对象
  • JSON.stringify() 会进行适当的转义。你不应该担心它。
  • 很想知道为什么“猫”上有双引号,而单引号可以解决这个问题。
  • 嗨 Jason210,问题是我需要涵盖所有场景,因为它有可能发生,事实上这发生了,我需要编写尽可能可靠的代码。谢谢你的回答我的朋友问候
  • @RaulGonzalez — 尝试从提交 JSON 的人在手工制作 JSON 时可能犯的任何错误中恢复的代码将需要大量工作,并且很可能会破坏完全有效的 JSON。如果有人提交了无效的 JSON,那么就给他们一条错误消息,而不是试图修复他们的错误。

标签: javascript json regex javascript-objects


【解决方案1】:

JSON.stringify 完全符合您的要求:

var object = {'name': 'Raul "the cat" Gonzalez'}; // single quotes, otherwise you would need escaped double quotes already here to avoid a JavaScript error.
console.log(JSON.stringify(object));

【讨论】:

    猜你喜欢
    • 2013-05-10
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2013-10-01
    • 1970-01-01
    • 2013-04-17
    相关资源
    最近更新 更多