从 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,就会得到数组中的内容
这是我的,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,就会得到数组中的内容