我有一个JSON字符串:'{"place": {"address": "Main Street, \"The House\""}}'
。
在使用JSON.parse()
解析之前,我必须确保双引号内的双引号正确转义。
我试图提出与#34; The House"匹配的正则表达式,但未能如此。
关于如何达到预期效果的任何想法?
答案 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, '\\"') + '"'
}))