我正在尝试对 JSON
字符串进行替换。像这样:
'{"val1":"1","val2":"2"","val3":"","val4":""}'
查看绑定(bind)到键 "val2"
的值,我将两个双引号放在一起 "2 ""
,但我无法解决这个问题,因为那是我如何获得 JSON
,我试图用 1 个双引号替换这些事件:从 "2""
到 "2"
我正在执行 replace()
但我找不到合适的正则表达式来执行此操作。我试过这个:
replace(/""/g, '"')
如果我这样做,它也会替换 "val3"
和 "val4"
。
这个不行:
replace(/[^:]+"";/g, '"')
我正在尝试完成 replace(REGEX_HERE)
:
从 "SomeCharactersHere""
到 "SomeCharactersHere"
最佳答案
你试过吗:
var s = '{"val1":"1","val2":"2"","val3":"","val4":""}';
s = s.replace(/([^:])\"\"/g, '$1\"')
console.log(s);
这匹配一些非冒号字符后跟一组双双引号,并将其替换为最初找到的非冒号字符和一个单双引号。
根据 ctwheels 的建议:
var s = '{"val1":"1","val2":"2"","val3":"","val4":""}';
s = s.replace(/([^:]")"+/g, '$1')
console.log(s);
如前所述,它将捕获多个无关双引号的可能性,并将替换简化为仅 $1
。谢谢!
关于javascript - 如何使用 Regex 将两个双引号替换为一个双引号而不捕获一个双引号的出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47638112/