国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

asp如何去除html標(biāo)記

2016-05-04 15:59:48 8659

方法一 : 禁用HTML

最簡(jiǎn)單的方法是直接禁用html標(biāo)簽而不用移除它們. 可以使用replace()函數(shù). 例如:

strText = replace(strText, "這樣做雖然很安全,但顯得不夠友好.(用戶提交的文本會(huì)變得難以閱讀)  



方法二: 使用"<"和">"

怎樣使得html標(biāo)簽從文本中消失呢? 我們可以去掉"<"和">"中間的所有內(nèi)容 

在JavaScript中這很簡(jiǎn)單: 

function RemoveHTML( strText )

{

    var regEx = /<[^>]*>/g;

    return strText.replace(regEx, "");

}

現(xiàn)在回到VBScript, 對(duì)于Scripting引擎5.0或更高版本(可以通過調(diào)用ScriptEngineMajorVersion和ScriptEngineMinorVersion函數(shù)來檢驗(yàn)版本),我們也可以使用RegExp物體: 

Function RemoveHTML( strText )

    Dim RegEx

    Set RegEx = New RegExp

    RegEx.Pattern = "<[^>]*>"

    RegEx.Global = True

    RemoveHTML = RegEx.replace(strText, "")

End Function

若不用正則表達(dá)式,下面的函數(shù)可以達(dá)到同樣的目的: 

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 

以上的方法雖然都可以去掉括號(hào)內(nèi)的html標(biāo)簽,但是這些方法都存在以下問題: 

首先,文本內(nèi)的任何不表示html?尖括號(hào)會(huì)被去除.而且兩個(gè)尖括號(hào)中間的文本也會(huì)被刪掉.換句話說,在文本中插入任何"<"或">"都會(huì)出現(xiàn)不可預(yù)料的結(jié)果.

另外,這種方法不能控制刪除哪些html標(biāo)簽.比如這些無(wú)害的標(biāo)簽通常是允許的. 



方法三:使用IE或其他工具

有很多缺點(diǎn):

"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://www.tjdsmy.cn/support/kb/articles/Q244/0/85.ASP?LN=EN-US&SD=gn&FR=0) 

方法四:VBScript

以下的函數(shù)可以限制到具體的html標(biāo)簽

簡(jiǎn)介: 

要控制被刪除的標(biāo)簽列表,可以通過向TAGLIST常數(shù)中添加/刪除標(biāo)記來實(shí)現(xiàn). 例如,要保留所有的標(biāo)簽,則從TAGLIST中刪除B. 當(dāng)前的列表包含了MSDN中的所有html標(biāo)簽以及 LAYER 標(biāo)簽. 每個(gè)標(biāo)簽要用";"括起來.

開始標(biāo)簽和結(jié)束標(biāo)簽都會(huì)被刪除,例如""和 

若標(biāo)簽同時(shí)在 TAGLIST 和 BLOCKTAGLIST 常數(shù)中,則起始標(biāo)簽和結(jié)束標(biāo)簽之間的所有內(nèi)容都會(huì)被刪除 

沒有結(jié)束標(biāo)記的標(biāo)簽不被視為html標(biāo)簽,其內(nèi)容不會(huì)被刪除 

塊標(biāo)簽若沒有結(jié)尾標(biāo)記,從此標(biāo)簽開始到文本結(jié)束的所有內(nèi)容會(huì)被刪除 

若"


            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, "                        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




提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: