我有一个问题,有人不正确地转义值后面的双引号被解释为JSON字符串。JavaScript的正则表达式替换字符串中的所有双引号,除非双引号后跟空格或逗号空格
字符串例如:
{"description":"This is my 12" pizza I ordered.","value":"1"}
当我努力JSON.parse()来处理这个它给因为转义双引号的错误(指的以英寸为单位的大小)
在第一,我想 - 只是这样做:
string.replace(/\"/g,'\"');
但当然这也逃脱了所有有效的双引号。所以,我不是正则表达式方面的专家,但我四处寻找答案,我认为这需要负面预测?
有人可以帮助构建一个正则表达式来寻找(替换)任何序列的双引号其中接下来的双字符序列后面的违法doubleqoute是不是太空逗号?
我知道这不是一个全面的解决方法,(让人去修复他们的结局),但不幸的是,我没有一个通用的解决方案。
TIA
更新 - 而不是考虑的例子中的字符串(只用于举例说明)。是否有可能在每个双引号之前和之后测试是否存在有效的JSON - 即查找以下任何字符: ,{[:
每个双引号之前和之后?我想这就是我所问 - 这可以用前瞻/后面的正则表达式来完成吗?
这在创作时会做得更好;你怎么创建你的_JSON_? –
当你使用JSON.stringify把你的“东西”变成一个json对象时,它应该为你做自动转义。你不需要自己做这个;你能否展示你如何构建你首先变成JSON的对象? –
你所要求的正则表达式不会解决你的问题,因为在'description','this'和'value'这两个单词前面的双引号不应该被转义,但是不会立即跟随逗号或空格字符。 – gatkin