乘风原创程序

  • ASP删除img标签的style属性只保留src的正则函数
  • 2020/9/14 13:21:44
  • ASP去除img标签style属性只保留src

    '功能:将IMG代码格式化为<img src="XXX" />格式,只保留SRC属性,去掉IMG标签的其他属性。

    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=([^\""\'\s][^\""\'\s>]*).*?>"
        sReallyDo = regEx.Replace(sReallyDo, "<img src=""$1"" />")
        '//正则匹配图片SRC地址
        regEx.Pattern = "<img.*?\ssrc=([\""\'])([^\""\']+?)\1.*?>"
        sReallyDo = regEx.Replace(sReallyDo, "<img src=""$2"" />")
        FixImg = sReallyDo
    End Function

    上面的代码确实写得不错,原理也可以参考下面的代码

    js过滤img里style属性

    var str = "<img style='ddddddddd'>"
    str = str.replace(/<img[^>]*>/gi, function (match, capture) {
    return match.replace(/style\s*?=\s*?([‘"])[\s\S]*?\1/ig, '')
    }))
    console.log(str)

    不是替换直接通过js设置

    var is=document.images;
    for(var i=0,len=is.length;i<len;i++){
    is[i].style.cssText=""
    }