asp

位置:IT落伍者 >> asp >> 浏览文章

ASP常用函数:getIMG()


发布日期:2023年01月12日
 
ASP常用函数:getIMG()

目前还是有BUG的最新的测试页面在:

正则分析页面在:
发现BUG请在后面留言谢谢
修正
src=后面有空格不能正确匹配已修正
src=为空时出错已修正
发现BUG: 图片路径有多个空格时只能保留一个未修正
修正
图片路径有多个空格时只能保留一个的BUG已修正
<%
功能:获取全部图片地址保存到一个数组
来源
需要ReplaceAll函数

Function getIMG(sString)
Dim sReallyDo regEx iReallyDo
Dim oMatches cMatch
//定义一个空数组
iReallyDo =
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 " )
sReallyDo = Replace(sReallyDo "/>" " />" )
sReallyDo = ReplaceAll(sReallyDo "= " "=" True)
sReallyDo = ReplaceAll(sReallyDo "> " ">" True)
sReallyDo = Replace(sReallyDo "><" ">" & vbCrLf & "<")
sReallyDo = Trim(sReallyDo)
Set regEx = New RegExp
regExIgnoreCase = True
regExGlobal = True
//去除onclickonload等脚本
regExPattern = "s[on]+?=([""|])(*?)"
sReallyDo = regExReplace(sReallyDo "")
//将SRC不带引号的图片地址加上引号
regExPattern = "<img*?ssrc=([^""s][^""s>]*)*?>"
sReallyDo = regExReplace(sReallyDo "<img src=""$"" />")
//正则匹配图片SRC地址

regExPattern = "<img*?ssrc=([""])([^""]+?)*?>"
Set oMatches = regExExecute(sReallyDo)
//将图片地址存入数组
For Each cMatch in oMatches
iReallyDo = iReallyDo +
ReDim PReserve aReallyDo(iReallyDo)
aReallyDo(iReallyDo) = regExReplace(cMatchValue "$")
Next
getIMG = aReallyDo
End Function
%>

<%
用法:很多人都问我怎么用其实数组怎么用的这个就怎么用
sContent = "HTML代码字段" //sContent代表Html代码原来写个ors怎么就不懂是记录集呢
Dim aImages : aImages = GetImg(sContent) //定义一个数组并且用来存放所有分析到的图片地址
列出所有图片的地址:
For i = To UBound(aImages)
ResponseWrite("<b>第" & i + & "张图片地址:</b> " & aImages(i) & "<br />")
Next
列出第一张图片地址:
If UBound(aImages)> Then ResponseWrite("<p><b>第一张图片地址:</b> " & aImages() & "</p>")
列出最后一张图片地址:
If UBound(aImages)> Then ResponseWrite("<p><b>最后一张图片地址:</b> " & aImages(UBound(aImages)) & "</p>")
%>

               

上一篇:简单入门ASP变量

下一篇:对ASP 动态包含文件方法的改进