我已对描述字段中包含逗号的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”的方法? (双引号用于强调)
感谢您的帮助。
答案 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);