向書本學(xué)習(xí),還要向?qū)嵺`學(xué)習(xí)、向生活學(xué)習(xí)。消化已有知識,
而且要力求有所發(fā)現(xiàn)、有所發(fā)明、有所創(chuàng)造
2019/3/26 12:38:44
方法一 : 禁用HTML
最簡單的方法是直接禁用html標(biāo)簽而不用移除它們. 可以使用Replace()函數(shù). 例如:
strText = Replace(strText, "<script", "<script", 1, -1, 1)
或者直接禁用所有的html:
strText = Replace(strText, "<", "<")
這樣做雖然很安全,但顯得不夠友好.(用戶提交的文本會變得難以閱讀)
方法二: 使用"<"和">"
怎樣使得html標(biāo)簽從文本中消失呢? 我們可以去掉"<"和">"中間的所有內(nèi)容
在JavaScript中這很簡單:
function RemoveHTML( strText )
{
var regEx = /<[^>]*>/g;
return strText.replace(regEx, "");
}
現(xiàn)在回到VBScript, 對于Scripting引擎5.0或更高版本(可以通過調(diào)用ScriptEngineMajorVersion和ScriptEngineMinorVersion函數(shù)來檢驗版本),我們也可以使用RegExp物體:
Function RemoveHTML( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
RemoveHTML = RegEx.Replace(strText, "")
End Function
若不用正則表達式,下面的函數(shù)可以達到同樣的目的:
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
以上的方法雖然都可以去掉括號內(nèi)的html標(biāo)簽,但是這些方法都存在以下問題:
首先,文本內(nèi)的任何不表示html的尖括號會被去除.而且兩個尖括號中間的文本也會被刪掉.換句話說,在文本中插入任何"<"或">"都會出現(xiàn)不可預(yù)料的結(jié)果.
另外,這種方法不能控制刪除哪些html標(biāo)簽.比如<b><i>這些無害的標(biāo)簽通常是允許的.
方法三:使用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
以下的函數(shù)可以限制到具體的html標(biāo)簽
簡介:
要控制被刪除的標(biāo)簽列表,可以通過向TAGLIST常數(shù)中添加/刪除標(biāo)記來實現(xiàn). 例如,要保留所有的<B>標(biāo)簽,則從TAGLIST中刪除B. 當(dāng)前的列表包含了MSDN中的所有html標(biāo)簽以及 LAYER 標(biāo)簽. 每個標(biāo)簽要用";"括起來.
開始標(biāo)簽和結(jié)束標(biāo)簽都會被刪除,例如"<A...>"和</A...>
若標(biāo)簽同時在 TAGLIST 和 BLOCKTAGLIST 常數(shù)中,則起始標(biāo)簽和結(jié)束標(biāo)簽之間的所有內(nèi)容都會被刪除
沒有結(jié)束標(biāo)記的標(biāo)簽不被視為html標(biāo)簽,其內(nèi)容不會被刪除
塊標(biāo)簽若沒有結(jié)尾標(biāo)記,從此標(biāo)簽開始到文本結(jié)束的所有內(nèi)容會被
深圳市南山區(qū)南山街道南海大道西桂廟路北陽光華藝大廈1棟4F、4G-04
咨詢電話:136 8237 6272
大客戶咨詢:139 0290 5075
業(yè)務(wù)QQ:195006118
技術(shù)QQ:179981967