使用正则表达式 [JS] 在双引号内转义双引号
Escape double quotes within double quotes with Regex[JS]
我有一个 JSON 字符串:'{"place": {"address": "Main Street, \"The House\""}}'
.
在用 JSON.parse()
解析它之前,我必须确保双引号内的双引号被正确转义。
我试图想出匹配 "The House" 的正则表达式,但没有成功。
关于如何实现预期结果的任何想法?
这在积极的先行断言的帮助下是可能的。
var s = '{"place": {"address": "Main Street, "The House""}}';
alert(s.replace(/"((?:"[^"]*"|[^"])*?)"(?=[:}])/g, function(m,group)
{
return '"' + group.replace(/"/g, '\"') + '"'
}))
或
var s = '{"place": {"address": "Main Street, "The House"", "country": "United Kingdom"}}';
alert(s.replace(/"((?:"[^"]*"|[^"])*?)"(?=[:},])(?=(?:"[^"]*"|[^"])*$)/gm, function(m,group)
{
return '"' + group.replace(/"/g, '\"') + '"'
}))
我有一个 JSON 字符串:'{"place": {"address": "Main Street, \"The House\""}}'
.
在用 JSON.parse()
解析它之前,我必须确保双引号内的双引号被正确转义。
我试图想出匹配 "The House" 的正则表达式,但没有成功。
关于如何实现预期结果的任何想法?
这在积极的先行断言的帮助下是可能的。
var s = '{"place": {"address": "Main Street, "The House""}}';
alert(s.replace(/"((?:"[^"]*"|[^"])*?)"(?=[:}])/g, function(m,group)
{
return '"' + group.replace(/"/g, '\"') + '"'
}))
或
var s = '{"place": {"address": "Main Street, "The House"", "country": "United Kingdom"}}';
alert(s.replace(/"((?:"[^"]*"|[^"])*?)"(?=[:},])(?=(?:"[^"]*"|[^"])*$)/gm, function(m,group)
{
return '"' + group.replace(/"/g, '\"') + '"'
}))