在ASP中常用的函数是 getIMG()
发现BUG请在后面留言: 修正 src=后面有空格不能正确匹配.已修正. src=''为空时出错.已修正. 发现BUG: 图片路径有多个空格时只能保留一个.未修正. 修正 图片路径有多个空格时只能保留一个的BUG.已修正. <% '功能:获取全部图片地址,保存到一个数组. '来源:http://jorkin.reallydo.com/article.asp?id=448 '需要ReplaceAll函数:http://jorkin.reallydo.com/article.asp?id=406 Function getIMG(sString) Dim sReallyDo, regEx, iReallyDo Dim oMatches, cMatch '//定义一个空数组 iReallyDo = -1 ReDim aReallyDo(iReallyDo) If IsNull(sString) Then getIMG = aReallyDo Exit Function End If '//格式化HTML代码 '//将每个 <img 换行 方便正则替换 sReallyDo = sString On Error Resume Next sReallyDo = Replace(sReallyDo, vbCr, " ") sReallyDo = Replace(sReallyDo, vbLf, " ") sReallyDo = Replace(sReallyDo, vbTab, " ") sReallyDo = Replace(sReallyDo, "<img ", vbCrLf & "<img ", 1, -1, 1) sReallyDo = Replace(sReallyDo, "/>", " />", 1, -1, 1) sReallyDo = ReplaceAll(sReallyDo, "= ", "=", True) sReallyDo = ReplaceAll(sReallyDo, "> ", ">", True) sReallyDo = Replace(sReallyDo, "><", ">" & vbCrLf & "<") sReallyDo = Trim(sReallyDo) Set regEx = New RegExp regEx.IgnoreCase = True regEx.Global = True '//去除onclick,onload等脚本 regEx.Pattern = "/s[on].+?=([/""|/'])(.*?)/1" sReallyDo = regEx.Replace(sReallyDo, "") '//将SRC不带引号的图片地址加上引号 regEx.Pattern = "<img.*?/ssrc=([^/""/'/s][^/""/'/s>]*).*?>" sReallyDo = regEx.Replace(sReallyDo, "<img src=""$1"" />") '//正则匹配图片SRC地址 http://bizhi.cncms.com/ regEx.Pattern = "<img.*?/ssrc=([/""/'])([^/""/']+?)/1.*?>" Set oMatches = regEx.Execute(sReallyDo) '//将图片地址存入数组 For Each cMatch in oMatches iReallyDo = iReallyDo + 1 ReDim PReserve aReallyDo(iReallyDo) aReallyDo(iReallyDo) = regEx.Replace(cMatch.Value, "$2") Next getIMG = aReallyDo End Function %> <% '用法:很多人都问我怎么用,其实数组怎么用的这个就怎么用. sContent = "HTML代码字段" '//sContent代表Html代码,原来写个ors怎么就不懂是记录集呢。。。 Dim aImages : aImages = GetImg(sContent) '//定义一个数组,并且用来存放所有分析到的图片地址 '列出所有图片的地址: For i = 0 To UBound(aImages) Response.Write("<b>第" & i + 1 & "张图片地址:</b> " & aImages(i) & "<br />") Next '列出第一张图片地址: If UBound(aImages)> -1 Then Response.Write("<p><b>第一张图片地址:</b> " & aImages(0) & "</p>") '列出最后一张图片地址: If UBound(aImages)> -1 Then Response.Write("<p><b>最后一张图片地址:</b> " & aImages(UBound(aImages)) & "</p>") %> (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |