【发布时间】:2015-08-06 21:40:24
【问题描述】:
我有以下损坏的 javascript json 字符串
[ 'some string's', 'inside, array', 60.4, 10.3, '' ]
我想将从网页的脚本部分抓取的这个损坏的 json 字符串解析为 javascript 数组 - 但如您所见,它不是有效的 json。字符串是单引号的,并且字符串内也可以有单引号。所以我需要用双引号替换字符串项周围的单引号,而不更改字符串内的单引号。
这里有正则表达式魔术师吗?
更新: 字符串也可以包含逗号,项目也可以是数字。
提示:
寻找模式', ' 来分隔字符串项可能会起作用。
【问题讨论】:
-
您尝试做的事情通常不是正则表达式可解决的。那是因为正则表达式不适用于嵌套。除非您有有关输入的更多信息,否则您将需要一个适当的解析器(这可能不容易实现)。例如,它始终是一个平面列表。
-
更改创建 JSON 的代码以添加反斜杠/转义,或用双引号括起来。
-
我无法更改内容的创建方式,因为我从网页上抓取了数据。
-
老兄,你肯定做错了什么。您向我们展示的示例至少有两种解释:1 元素数组或 2 元素数组。我怀疑任何网站都可以使用这种模棱两可的表示。
-
@freakish 是的,这很奇怪。我正在使用脚本标记抓取网页,因此该数组被声明为 javascript 数组,但我将其解析为字符串..我会更多地研究数据..
标签: javascript regex json string single-quotes