• <table id="mmcaq"></table>
  • <table id="mmcaq"><button id="mmcaq"></button></table>
  • <table id="mmcaq"></table>
  • <table id="mmcaq"><li id="mmcaq"></li></table>
  • <table id="mmcaq"><li id="mmcaq"></li></table>
  • <td id="mmcaq"></td>
  • <table id="mmcaq"></table>
  • <td id="mmcaq"></td>
  • <li id="mmcaq"></li>
  • <td id="mmcaq"><li id="mmcaq"></li></td>
  • 技術文章
    asp如何去除html標記
    方法一 : 禁用HTML
    最簡單的方法是直接禁用html標簽而不用移除它們. 可以使用Replace()函數. 例如:
    strText = Replace(strText, "<script", "&lt;script", 1, -1, 1)
    或者直接禁用所有的html: 
    strText = Replace(strText, "<", "&lt;")
    這樣做雖然很安全,但顯得不夠友好.(用戶提交的文本會變得難以閱讀) 
    方法二: 使用"<"和">"
    怎樣使得html標簽從文本中消失呢? 我們可以去掉"<"和">"中間的所有內容 
    在JavaScript中這很簡單: 
    function RemoveHTML( strText )
    {
        var regEx = /<[^>]*>/g;
        return strText.replace(regEx, "");
    }
    現在回到VBScript, 對于Scripting引擎5.0或更高版本(可以通過調用ScriptEngineMajorVersion和ScriptEngineMinorVersion函數來檢驗版本),我們也可以使用RegExp物體: 
    Function RemoveHTML( strText )
        Dim RegEx
        Set RegEx = New RegExp
        RegEx.Pattern = "<[^>]*>"
        RegEx.Global = True
        RemoveHTML = RegEx.Replace(strText, "")
    End Function
    若不用正則表達式,下面的函數可以達到同樣的目的: 
    Function RemoveHTML( strText ) 
        Dim nPos1
        Dim nPos2     
        nPos1 = InStr(strText, "<") 
        Do While nPos1 > 0 
            nPos2 = InStr(nPos1 + 1, strText, ">") 
            If nPos2 > 0 Then 
                strText = Left(strText, nPos1 - 1) & Mid(strText, nPos2 + 1) 
            Else 
                Exit Do 
            End If 
            nPos1 = InStr(strText, "<") 
        Loop 
        
        RemoveHTML = strText 
    End Function 
    以上的方法雖然都可以去掉括號內的html標簽,但是這些方法都存在以下問題: 
    首先,文本內的任何不表示html的尖括號會被去除.而且兩個尖括號中間的文本也會被刪掉.換句話說,在文本中插入任何"<"或">"都會出現不可預料的結果.
    另外,這種方法不能控制刪除哪些html標簽.比如<b><i>這些無害的標簽通常是允許的.
    方法三:使用IE或其他工具
    有很多缺點:
    "It may be desirable to parse HTML files inside a Web server process in response to a browser page request. However, the WebBrowser control, DHTML Editing Control, MSHTML, and other Internet Explorer components may not function properly in an Active Server Pages (ASP) page or other application run in a Web server application." (http://support.microsoft.com/support/kb/articles/Q244/0/85.ASP?LN=EN-US&SD=gn&FR=0) 
    方法四:VBScript
    以下的函數可以限制到具體的html標簽
    簡介: 
    要控制被刪除的標簽列表,可以通過向TAGLIST常數中添加/刪除標記來實現. 例如,要保留所有的<B>標簽,則從TAGLIST中刪除B. 當前的列表包含了MSDN中的所有html標簽以及 LAYER 標簽. 每個標簽要用";"括起來.
    開始標簽和結束標簽都會被刪除,例如"<A...>"和</A...> 
    若標簽同時在 TAGLIST 和 BLOCKTAGLIST 常數中,則起始標簽和結束標簽之間的所有內容都會被刪除 
    沒有結束標記的標簽不被視為html標簽,其內容不會被刪除 
    塊標簽若沒有結尾標記,從此標簽開始到文本結束的所有內容會被刪除 
    若"<!--"后跟的字符不是空格,注釋標簽不會被刪除 
    使用這個函數很簡單: 
    strPlainText = RemoveHTML(strTextWithHTML)
    函數內容如下: 
    Function RemoveHTML( strText )
        Dim TAGLIST
        TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
                  "BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
                  "COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
                  "FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;" &_
                  "INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
                  "MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;" &_
                  "PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
                  "TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;"
        Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"     
        Dim nPos1
        Dim nPos2
        Dim nPos3
        Dim strResult
        Dim strTagName
        Dim bRemove
        Dim bSearchForBlock     
        nPos1 = InStr(strText, "<")
        Do While nPos1 > 0
            nPos2 = InStr(nPos1 + 1, strText, ">")
            If nPos2 > 0 Then
                strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
            strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")

                nPos3 = InStr(strTagName, " ")
                If nPos3 > 0 Then
                    strTagName = Left(strTagName, nPos3 - 1)
                End If
    If Left(strTagName, 1) = "/" Then
                    strTagName = Mid(strTagName, 2)
                    bSearchForBlock = False
                Else
                    bSearchForBlock = True
                End If
                
                If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
                    bRemove = True
                    If bSearchForBlock Then
                        If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
                            nPos2 = Len(strText)
                            nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
                            If nPos3 > 0 Then
                                nPos3 = InStr(nPos3 + 1, strText, ">")
                            End If
                            
                            If nPos3 > 0 Then
                                nPos2 = nPos3
                            End If
                        End If
                    End If
                Else
    bRemove = False
                End If
                
                If bRemove Then
                    strResult = strResult & Left(strText, nPos1 - 1)
                    strText = Mid(strText, nPos2 + 1)
                Else
                    strResult = strResult & Left(strText, nPos1)
                    strText = Mid(strText, nPos1 + 1)
                End If
            Else
                strResult = strResult & strText
                strText = ""
            End If
            
            nPos1 = InStr(strText, "<")
        Loop
        strResult = strResult & strText
        
        RemoveHTML = strResult
    End Function
    本文共分 1

    電話:0534-2667072    QQ交流    地址:山東省德州市唐人中心商務樓C座1910室  歡迎來電或來公司咨詢

    德州博維網絡信息服務有限公司,致力于網站建設、企業400電話開通,低價格但是絕不低端

    營業執照公示 備案號   魯B2-20041020-4   魯公網安備 37140202000171號  Copyright © 2001-2021 名企網 德州網絡   

    91精品视频在线