从 html 中的脚本获取 javascript 对象

get javascript object from script in html

这是我的,html:

    <script type="text/javascript">var imp_accountInfo = {
          "id": "6yb32e53e03g4",
          "nickname": "jack"
    };</script>

我想得到这部分:

    {
      "id": "6yb32e53e03g4",
      "nickname": "jack"
    }

我尝试使用 cheerio,但我迷路了太多东西,我什至不知道从哪里开始。

这个简单的正则表达式可以为您完成(尽管您还没有用正则表达式标记您的问题):

/{[^}]+}/g

它只是以左花括号开始,然后匹配不是右花括号的所有内容,并以最后的右花括号结束。它正是你想要的。

Edit 根据评论:

/imp_accountInfo\s=\s({[^}]+})/

这将找到靠近“imp_accountInfo”的第一个大括号。

使用方法:

在JavaScript中使用String.match并使用结果数组的索引'1'

编辑2:

我已经扩展了正则表达式,所以现在您可以提取花括号之间的 quoted 值:

/imp_accountInfo\s=\s{[^"]*"([^"]*)"[^"]*"([^"]*)"[^"]*"([^"]*)"[^"]*"([^"]*)"[^}]*}/

还是用String.match,就会得到数组中的内容