从 html 中的脚本获取 javascript 对象

Posted

技术标签:

【中文标题】从 html 中的脚本获取 javascript 对象【英文标题】:get javascript object from script in html 【发布时间】:2019-03-20 06:40:23 【问题描述】:

这就是我所拥有的,html

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

我想得到这部分:

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

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

【问题讨论】:

【参考方案1】:

这个简单的正则表达式可以为你做到(尽管你没有用正则表达式标记你的问题):

/[^]+/g

它只是从左大括号开始,然后匹配不是右大括号的所有内容,并以最后一个右大括号结束。它得到你想要的。

Edit根据评论:

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

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

如何使用

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

编辑2

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

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

仍然使用String.match,你会得到数组中的内容。

【讨论】:

有没有办法通过这部分“imp_accountInfo”找到它,因为我的html中有几个花括号

以上是关于从 html 中的脚本获取 javascript 对象的主要内容,如果未能解决你的问题,请参考以下文章

从脚本中的类中获取值

使用 Selenium / Protractor 进行测试时从网站获取注入的 javascript

如何在javascript中获取从Action中传送过来的一个List集合中的某一个值呢?

防止 Javascript 中的 HTML 和脚本注入

从普通脚本调用模块类型脚本中的 Javascript 函数

如何从对象中获取数据并在html中的元素中分配 - javascript代码[关闭]