指引网

当前位置: 主页 > 网站运营 > 建站经验 >

asp正则表达式获得网页所有js代码

来源:网络 作者:佚名 点击: 时间:2017-08-08 22:56
[摘要] 近日做一个项目,需要获取网页所有js代码,使用语言是asp。一开始想到的是通过寻找字符串 script 作为开始位置, /script 字符串作为结束位置的方法,一张网页只有一段js代码还好做,但是网

近日做一个项目,需要获取网页所有js代码,使用语言是asp。一开始想到的是通过寻找字符串<script作为开始位置,</script>字符串作为结束位置的方法,一张网页只有一段js代码还好做,但是网页有多少段js代码是个未知数,因此使用寻找字符串的方法会比较困难。

后来想到正则表达式,但是我对正则表达式并不是很精通,虽然以前也写过一些正则代码。不过,我认为通过正则表达式匹配,揪出符合规则的字符串,效率是最高的,并且实现代码应该也是最少的。于是,当机立断,就用正则表达式来获得网页所有js代码。

由于对正则表达式并不陌生,找了一个类似的例子参考后,很快便完成了程序,调试调试,终于成功。下面附上代码。

asp正则表达式获得网页所有js代码

<%
Dim str

'假设str为网页html代码
str = "<html><head><script type='text/javascript'>function(){var a = 1;}</script></head><body>hello world!</body><script>function(){var b = 2;}</script></html>"  

Dim re, match, matchs 

'定义正则方法Re 
set re = new RegExp  

'设置不用区分大小写
re.IgnoreCase =True   

'设置全局匹配(如果设为false,则只找出第一个匹配的项)
re.Global = True 

'正则表达式,这个最为关键,需要了解各转义符的词义  
re.Pattern = "<script[^>]*?>([\s\S]*?)</script>" 

'执行正则
Set matchs = re.Execute(str)  

'列举所有匹配项
for each match in matchs    

  '把每一个匹配项写下来,也可以保存到一个变量里,供后面使用
   response.write match.SubMatches(0) & "<br><br>---------<br><br>"

next

'结束执行  
set matchs = nothing  
%>

执行结果:

function(){var a = 1;}

---------

function(){var b = 2;}

---------

 

正则表达式各个转义符的词义是通用的,即每个转义符在各种编程语言里的含义都是一样的,这给跨语言编程带来很大的便利,不用去重新研究新的匹配规则。

------分隔线----------------------------