从字符串化的JSON中删除逗号,但不从数组中删除逗号

时间:2018-09-06 17:54:15

标签: jquery json replace stringify

我已对描述字段中包含逗号的JSON数据进行了字符串化处理。如果我在数据中有撇号或逗号,则AJAX发布失败。
如何从var test = JSON.stringify(data)中删除以下内容?

测试将打印如下: [{“ var1”:“ 0”,“ description”:“ this,has,逗号”},{“ var1”:“ 1”,“ description”:“ more,逗号”}]

我可以去除描述中的逗号,以便JSON字符串看起来像: [{“ var1”:“ 0”,“ description”:“这有逗号”},{“ var1”:“ 1”,“ description”:“更多逗号”}]
,因此保留逗号分离对象?
甚至更好...:
[{“ var1”:“ 0”,“ description”:“此\,有\,逗号”},{“ var1”:“ 1”,“ description”:“更多\,逗号”}]


更改后,需要将数据推回我的服务器并重新加载到我的数据库中,逗号和撇号需要保持原样。
test.replace(/,/ g,“”)当然.​​..摆脱了也分隔对象的逗号,并且把我搞砸了。
任何人都非常了解正则表达式,这可能会建议一种在“},{”之间替换“,”而不是“ not”的方法? (双引号用于强调)
感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如何以负前瞻方式进行test.replace-https://regex101.com/r/WtHcuO/2/

var data = JSON.stringify([{"var1":"0","description":"this, has, commas"},{"var1":"1","description":"more, commas"}]);

var stripped = data.replace(/,(?!["{}[\]])/g, "");

console.log(stripped);

或者,如果您想保留逗号但将其转义,则可以用\\,代替""

var data = JSON.stringify([{"var1":"0","description":"this, has, commas"},{"var1":"1","description":"more, commas"}]);

var stripped = data.replace(/,(?!["{}[\]])/g, "\\,");

console.log(stripped);