【发布时间】:2021-11-24 07:22:14
【问题描述】:
我有类似来自 API 的数据,我需要做 JSON.parse 这个,但问题是有内部双引号,所以我无法解析它我应该怎么做,我可以使用正则表达式什么的。
const dataString = '{"EN" : "2. This English "Blha Blha" "Woo Woo" something wrong."}';
我也用过这个正则表达式
replace(/(^"|"$)|"/g, "'");
但是通过使用这个正则表达式,它会将所有双引号替换为像这样的单引号 =>
{'EN' : '2. This English 'Blha Blha' 'Woo Woo' something wrong.'};
我只想像这样替换引号
{'EN' : '2. This English "Blha Blha" "Woo Woo" something wrong.'};
【问题讨论】:
-
如果 JSON 这么简单(一个键值对),用
dataString = dataString.replace(/^([^"]*"[^"]*"\s*:\s*")(.*)("[^"]*$)/g, (_, x,y,z) => `${x}${y.replace(/"/g, '\\"')}${z}`)很容易修复 -
请API作者解决问题。
标签: javascript regex