首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

如何去除字符串中的html标签?【有难度】

2012-03-02 
怎么去除字符串中的html标签?【有难度】VBScript codeFunction RemoveHTML(strHTML)Dim objRegExp, Match, M

怎么去除字符串中的html标签?【有难度】

VBScript code
Function RemoveHTML(strHTML)    Dim objRegExp, Match, Matches    Set objRegExp = New Regexp    objRegExp.IgnoreCase = True    objRegExp.Global = True    objRegExp.Pattern = "(\<.[^\<]*\>)"    Set Matches = objRegExp.Execute(strHTML)    For Each Match in Matches    strHtml=Replace(strHTML,Match.Value,"")    Next    RemoveHTML=strHTML    Set objRegExp = NothingEnd Function


大家都见过上面这个代码吧。
我现在发现这个代码不全面啊。

我有个字符串,是从数据库中读取出来的。
需要对它进行 去除html标记的 处理工作。然后显示在网页某个地方。
我希望对它进行 强有力的 去除。我找了很久,发现网上的都不能用啊。

特别是:不能灵活处理 标签嵌套的问题。比如注释里有代码。

好吧,我把代码贴出来

HTML code
<script language="JavaScript"><!--    var country="楼主"    //--></script><style type="text/css">    .myname{font-family:"饿了";}</style><table><tr><td>哇塞</td></tr></table><iframe src=".............." title="还在加班"></iframe><OBJECT src="..............">郁闷啊</OBJECT><!-- 注释 我的<b>毅力</b>很强 --><p>    <font color=red>注意了:</font>    100只<i>鸡</i> < 200只<i>鸡</i> > 50只<i>鸡</i> = 一百只<i>鸡</i></p>


我希望有这样一个函数,经过处理之后,上面的内容 只返回如下结果:

HTML code
哇塞注意了:100只鸡 < 200只鸡 > 50只鸡 = 一百只鸡



希望能得到一个完整的函数。 注意,用ASP。

[解决办法]
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
www.teying.net
[解决办法]
HTML code
 <textarea id="sss" rows="10" cols="100"></textarea>  <SCRIPT Language="VBScript">  Function RemoveHTML(strHTML)    Dim objRegExp, Match, Matches    Set objRegExp = New Regexp    objRegExp.IgnoreCase = True    objRegExp.Global = True    objRegExp.Pattern = "<(.[^\<]*)>(.[^\<\1]*)<\/\1>"    RemoveHTML = objRegExp.Replace(strHTML,"$2")    Set objRegExp = NothingEnd Functionsss.value = RemoveHTML("100只<i>鸡</i> < 200只<i>鸡</i> > 50只<i>鸡</i> = 一百只<i>鸡</i>")
[解决办法]
这些文本是你在文本编辑器里面输入的?预先排好格式的吗?
[解决办法]
只删除标签:
HTML code
 <textarea id="sss" rows="10" cols="100"></textarea>  <SCRIPT Language="VBScript">  Function RemoveHTML(strHTML)    Dim objRegExp, Match, Matches    Set objRegExp = New Regexp    objRegExp.IgnoreCase = True    objRegExp.Global = True    objRegExp.Pattern = "<.[^\s|^<]*>"    RemoveHTML = objRegExp.Replace(strHTML,"")    Set objRegExp = NothingEnd Functionsss.value = RemoveHTML("100只<i>鸡</i> < 200只<i>鸡</i> > 50只<i>鸡</i> = 一百只<i>鸡</i>")</SCRIPT> 


[解决办法]
你用个ewebeditor,,研究下删除格式的功能
[解决办法]
objRegExp.Pattern = "<(script).[^<]*>(.[^<]*)<\/\1>"
strHTML = objRegExp.Replace(strHTML,"")
objRegExp.Pattern = "<(style).[^<]*>(.[^<]*)<\/\1>"
strHTML = objRegExp.Replace(strHTML,"")
objRegExp.Pattern = "<(object).[^<]*>(.[^<]*)<\/\1>"
strHTML = objRegExp.Replace(strHTML,"")

热点排行