首页
社区
课程
招聘
[求助]如何編程實現快速查找HTML中的Javascript代碼?
发表于: 2010-4-2 18:00 5781

[求助]如何編程實現快速查找HTML中的Javascript代碼?

2010-4-2 18:00
5781
舉個例子,比如豆瓣主頁中:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>
豆瓣

</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="Sun, 6 Mar 2005 01:00:00 GMT" />

    
<meta content="提供图书、电影、音乐唱片的推荐、评论和价格比较,以及城市独特的文化生活。" name="description"/>

    <script type="text/javascript" src="http://otho.douban.com/js/packed_jquery0.js"></script>
    <script type="text/javascript" src="http://otho.douban.com/js/packed_jquery.suggest1.js"></script>
    <link rel="shortcut icon" href="http://t.douban.com/favicon.ico" type="image/x-icon" />
    <link href="http://otho.douban.com/css/packed_douban209.css" rel="stylesheet" type="text/css" />
    <link href="http://otho.douban.com/css/separation/packed__all41.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://otho.douban.com/js/packed_douban58.js"></script>

    <script type="text/javascript" src="http://otho.douban.com/js/separation/packed__all1.js"></script>
    
<script type="text/javascript" src="http://otho.douban.com/js/packed_jquery.history0.js"></script>

    <style type="text/css">


</style>
    <script type="text/javascript">

$(function(){
	var max = 128, 
	isvalid = false,
	node_root = '#db-talk',
	node_textarea = '#db-talk textarea',
	node_form = '#db-talk form',
	node_rec = '#db-talk .msg a',
	node_msg = '#db-talk .tipmsg',
	node_dlg = '#dialog',
	node_cta = '#db-talk .bn-cta',
	css_rec_dlg = 'rec-dlg',
	css_error = 'talk-error',
	css_frm_error = 'errmsg',
	css_bn_hover = 'bn-cta-over',
	err_title = '请填写标题',
	err_url = '请填写正确的网址',
}


我想提取function()函數,但是實際上如果寫循環函數的話{}的匹配就變得很棘手,比如a="123{"之類的問題出現就會出現匹配錯誤,不知道大家愛啊有沒什麽好方法?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 284
活跃值: (106)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
2
试试webbrowser控件,虽然自己没有用来提取过jsp代码,但是估计是可以的,这个控件连里面的jsp函数都可以调用……
2010-4-3 11:32
0
雪    币: 123
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
用正则表达式,绝对能匹配出来。编译器实现的原理就是用正则表达式,编译器都能匹配出函数,你也能。
2010-4-5 11:45
0
雪    币: 24
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
实际上function的问题很多,因为正则写不出来,所以才来提问的
2010-4-6 10:12
0
雪    币: 184
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
和做编译器是一样的,需要将一个个标记(token)parse出来,生成一个标记数组,然后按顺序一个一个读入分析(再做一遍语法分析)。

字符串也要作为标记parse出来,要注意字符串中的转意字符的处理,为了保证不会将多字节字符的一部分当做引号等其它字符,建议首先全部转换成unicode再分析,还要注意注释的处理

注意区分保留字和非保留字、运算符等等(要有一张保留字表)

为了简化,第一步可以剔除html部分,应该比较容易

【函数】::= 【函数名】+【参数表】+【{】+【句子】+【句子】。。。+【}】
【函数名】::=【非保留字标识符】
等待。。。。。。。。。

和做一个编译器相比,只有前面两步,即词法分析、语法分析,没有代码生成部分,简单不少。

编程并不难,代码量却不见得小,将词法、语法定义清楚才是关键的。
2010-4-8 17:29
0
雪    币: 54
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
正则+Script
2010-4-9 18:33
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个太简单了
如果你的HTML页是远程在网上的

用HttpWebRequest,获取页面源码,在本地,就直接打开

再用正则搜就行了
2010-4-11 19:13
0
游客
登录 | 注册 方可回帖
返回
//