我想创建一个可以解析成JSON的字符串。该字符串是根据CMS中的内容动态创建的。 该内容可能包含带双引号的HTML标记,这会混淆JSON解析器。所以,我需要用"
替换HTML中的双引号,而不用替换实际上是JSON结构一部分的双引号。 我的想法是将HTML内部的标记包裹起来,我可以使用它来标识这些标记之间的所有内容,作为我想要替换的引号。 比如我想解析字符串转换成JSON看起来是这样的......JavaScript的正则表达式来查找某些字符之间的双引号
str = '{"key1":"XXX<div id="divId"></div>YYY", "key2":"XXX<div id="divId"></div>YYY"}';
所以,我想更换XXX和一个"
一个YYY之间的每双引号。 类似...
str = str.replace(/XXX(")YYY/g, '"');
希望有道理。感谢您的任何建议。
我打算假设回到CMS并让它/他们写JSON _correctly_不是一个有效的选项吗?顺便说一句,**非常粗糙**(?:\ w + =(“)|”(?:\ s |>))'尽管如此,这不是正则表达式的工作。而且,恕我直言,如果合同承诺提供JSON,它应该。这就像试图用太多的逗号来修复错误的CSV ... –
感谢Brad的快速响应。你是对的,这不是正则表达式的工作。这只是一个尝试破解我无法修复的东西。你的答案完美适用于清除html属性的引用,但我不能认为innerHTML中也不会有引号。 – graeme
难道你不能只是得到一个更好的JSON解析器吗?这真的不应该是一个问题。 – Malvolio