用Regex [JS]双引号内的双引号

时间:2015-06-21 08:37:15

标签: javascript regex json escaping

我有一个JSON字符串:'{"place": {"address": "Main Street, \"The House\""}}'

在使用JSON.parse()解析之前,我必须确保双引号内的双引号正确转义。

我试图提出与#34; The House"匹配的正则表达式,但未能如此。

关于如何达到预期效果的任何想法?

1 个答案:

答案 0 :(得分:2)

在积极前瞻断言的帮助下,这是可能的。



var s = '{"place": {"address": "Main Street, "The House""}}';
alert(s.replace(/"((?:"[^"]*"|[^"])*?)"(?=[:}])/g, function(m,group)
                          {
                            return '"' + group.replace(/"/g, '\\"') + '"'
                          }))




OR



var s = '{"place": {"address": "Main Street, "The House"", "country": "United Kingdom"}}';
alert(s.replace(/"((?:"[^"]*"|[^"])*?)"(?=[:},])(?=(?:"[^"]*"|[^"])*$)/gm, function(m,group)
                          {
                            return '"' + group.replace(/"/g, '\\"') + '"'
                          }))