小小问题,大伤脑筋,解决立马给分
dhluo 2005-09-29 11:12:03 我们都知道,在客户端,无论是javascript还是vbscript,都能取用obj.innerText来获得这个obj内的“纯文本”。
现在的问题是:如何在服务器端(vbscript),实现同样的功能(有现成函数最好)?
举例:
我现在有这么个变量值:
str1="aaa<a href='#'>link text</a>bbb<a href='#'>link2 text2</a>ccc"
通过变换,我要得到的结果是str2="aaalink textbbblink2 text2ccc"
当然,这个str1是任意的html文件内容(类似动网论坛可以编辑发布的“富文本”)
我现在为止的成果:
Function vbInnerText(oldstr)
Dim regEx ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = "<.*?>" ' 设置模式。
do while (regEx.test(oldstr) )
oldstr = regEx.Replace(oldstr, "")
loop
vbInnerText=oldstr
End Function
str2=vbInnerText(str1)
问题的解决虽然笨了点,但至少开始我是觉得没问题的,试了一些都很好。但后来发现,我的一个str1(其实是数据库里content字段的值)里,含有类似这样的代码“<img src='...' onload="if(this.width>100){this.width=100}">”,因为这里有一个“>”号,我的函数立马失效了(匹配错误),得到的结果大相径庭。
基于类似情况的推广考虑(就是,在标准html的“<”和“>”之间,不能出现“<”和“>”,否则就出错,所以,现在为止我还没有更好的解决方法。
请高手或已有良好解决办法的朋友帮忙。