javascript - 如何使用 Regex 将两个双引号替换为一个双引号而不捕获一个双引号的出现?

标签 javascript json regex string replace

我正在尝试对 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/

相关文章:

javascript - 如何获得旧/现代浏览器的 HTML 代码兼容性

javascript - 字符串中的字符串不能被换行符分割

javascript - 如何解析 PHP 脚本接收到的 JSON 数据

json - 使用 JSON 数据从 Azure 流分析查询 Power BI 输出

javascript - 如何将序列化的多维数组从 C# 传递到 Javascript

javascript - 无法使 EventListener 仅触发一次 JavaScript

javascript - Ajax Post 上的 Json 基元无效

具有 Collection<GenericType> 返回类型的方法签名的 Java 正则表达式

javascript - 了解 RegEx 空白字符

Java 正则表达式 - 重叠匹配