asp去掉html的方法:1、直接停用html標籤;2、使用「function RemoveHTML(){...}」方法移除;3、使用IE或其他工具移除;4、透過VBScript去掉HTML程式碼。
本文操作環境:windows7系統、HTML5&&ASP3.0版、Dell G3電腦。
ASP去掉HTML程式碼:
方法一: 停用HTML
#最簡單的方法是直接停用html標籤而不用移除它們. 可以使用Replace()函數.例如:
strText = Replace(strText, "<script", "<script", 1, -1, 1)
或直接停用所有的html:
strText = Replace(strText, "<", "<")
這樣做雖然很安全,但顯得不夠友善.(使用者提交的文字會變得難以閱讀)
方法二: 使用"<"和">"
怎麼樣使得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標籤.例如這些無害的標籤通常是允許的.
方法三:使用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常數中新增/刪除標記來實現. 例如,要保留所有的標籤,則從TAGLIST中刪除B. 目前的清單包含了MSDN中的所有html標籤以及LAYER 標籤. 每個標籤要用";"括起來.
開始標籤和結束標籤都會被刪除,例如"
若標籤同時在TAGLIST 和BLOCKTAGLIST 常數中,則起始標籤和結束標籤之間的所有內容都會被刪除
沒有結束標記的標籤不被視為html標籤,其內容不會被刪除
區塊標籤若沒有結尾標記,從此標籤開始到文字結束的所有內容會被刪除
#若"