文章摘要
这篇代码是用Visual Basic for Applications(VBA)编写的一个自定义函数 named `FixImg`,其主要功能是处理输入的字符串(通常与图片链接相关),并进行以下操作: 1. **替换特殊字符**:函数首先替换字符串中的换行符、制表符、空格以及某些特定的HTML标签(如`<img>`, `<`, `>`等)。2. **去除脚本内容**:通过正则表达式,去除字符串中包含的脚本标签(如`onclick`, `onload`等)。3. **处理图片引用**:进一步使用正则表达式处理图片的`src`属性,确保其引用格式正确,例如将不带引号的`src`地址加上引号,并正确替换图片标签中的`src`值。 总结来说,这个函数的主要目的是清理和规范字符串中的图片链接,使其更加标准和易于使用。
Function FixImg(sString)
Dim sReallyDo, regEx, iReallyDo
Dim oMatches, cMatch
Dim tStartTime, tEndTime
If IsNull(sString) Then
FixImg=””
Exit Function
End If
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)
On Error GoTo 0
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=https://www.jb51.net/article/([^””\’\s][^””\’\s>]*).*?>”
sReallyDo=regEx.Replace(sReallyDo, “<img src=”https://www.jb51.net/article/”$1″” />”)
‘//正则匹配图片SRC地址
regEx.Pattern=”<img.*?\ssrc=https://www.jb51.net/article/([“”\’])([^””\’]+?)\1.*?>”
sReallyDo=regEx.Replace(sReallyDo, “<img src=”https://www.jb51.net/article/”$2″” />”)
FixImg=sReallyDo
End Function
Function FixImg(sString)
Dim sReallyDo, regEx, iReallyDo
Dim oMatches, cMatch
Dim tStartTime, tEndTime
If IsNull(sString) Then
FixImg=””
Exit Function
End If
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)
On Error GoTo 0
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=https://www.jb51.net/article/([^””\’\s][^””\’\s>]*).*?>”
sReallyDo=regEx.Replace(sReallyDo, “<img src=”https://www.jb51.net/article/”$1″” />”)
‘//正则匹配图片SRC地址
regEx.Pattern=”<img.*?\ssrc=https://www.jb51.net/article/([“”\’])([^””\’]+?)\1.*?>”
sReallyDo=regEx.Replace(sReallyDo, “<img src=”https://www.jb51.net/article/”$2″” />”)
FixImg=sReallyDo
End Function
© 版权声明
文章版权归作者所有,未经允许请勿转载。