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

remove commas from stringified JSON but not commas separating array

我已将描述字段中包含逗号的 JSON 数据字符串化。如果我在数据中有 AJAX post rophes OR 逗号,则 AJAX post 失败。
如何从我的 var test = JSON.stringify(data) 中删除以下内容

test 将打印如下: [{"var1":"0","description":"this, has, commas"},{"var1":"1","description":"more, commas"}]

我可以删除描述中的逗号,使 JSON 字符串看起来像: [{"var1":"0","description":"this has commas"},{"var1":"1","description":"more commas"}]
所以留下分隔对象的逗号?
或者更好...:[=​​21=] [{"var1":"0","description":"this \, has \, commas"},{"var1":"1","description":"more \, commas"}]


数据需要被推回我的服务器并在更改后加载回我的数据库,逗号和 postrophes 需要保持完整。
test.replace(/,/g,"") 当然...也去掉了分隔对象的逗号,把我搞砸了。
任何人都知道正则表达式,这可能会建议一种方法来替换“,”但是 "not" 在 "},{" 之间? (双引号是为了强调)
感谢您的帮助。

做 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);