怎样在输出文本时替换掉所有HTML标记

[来源:来自网络] [作者:不详] [日期:2007-12-26] [热度:]
只写给新手的,各前辈就别来看我搬门弄斧了。hehe
经常看见有新手来问类似这样的话题,其实关于正则表达式我也不太懂。
昨天下午看了一下微软的正则表达式,少许理解。
今天也写个函数,只当实践,有误人之处请指点。
下面是一个实例:
原文是这样的:"<a href=""blueidea.com""><strong>test1</strong></a> <b>test2</b> <font color=red>test3</font> test4"
<Script Language="VBScript">
Function RegExpTest(patrn, strng,rewho)
Dim Re,Match,Matches,RetStr
RetStr=strng
Set Re = New RegExp
Re.Pattern = patrn
Re.IgnoreCase = True
Re.Global = True
Set Matches = Re.Execute(RetStr)
For Each Match in Matches
Restr = ReStr & Match.Value& ","
RetStr=replace(RetStr,match.value,rewho)
Next
Restr=replace(Restr,"<","&lt;")
Restr=replace(Restr,">","&gt;")
RegExpTest = "这是原文:"&strng&"<br>这是被替换掉的:"&ReStr&"<br>这就是剩下的了:"&Retstr
End Function
document.write RegExpTest("(<[^{><}]*>)", "<a href=""blueidea.com""><strong>test1</strong></a> <b>test2</b> <font color=red>test3</font> test4","")
</Script>

关键就在于<[^{><}]*>这个正则表达式,虽然很简单,但我还是我凭我浅浅理解,给大家说一下。
HTML标记是以小于号“<”开始,以大于号“>”,结束的。
所以这个正则表达式中的所有大于小于号都代表HTML标记,不是特殊字符。
“[”“]”方括号表达式中所包含的字符只匹配该括号表达式在正则表达式
所处位置的一个单字符,我简单的理解为,它是匹配某位置的单个字符。
“^”标记是特殊符号,在方括号里面,后面跟的是列表字符,所以它的意思是
所有不在列表或范围中的字符。按我的理解他就相当于我们程序中的“NOT”
所以方括号中的^{><}的意思就是,这个单字符非大于或非小于号。
里面的大括号去掉其实也一样。大括号也是特殊字符

相关文章

一网情深,为您提供免费的网络学习资源