高效的删除HTML标签的函数

作者:Fris 来源:Fris's Blog 时间:2009-02-26 13:02:00 

这里提供三种方法:

1,使用正则表达式

Function regKillHTML(str) 
     dim re,s 
     s=str 
     set re = New RegExp 
     re.Global = True 
     re.IgnoreCase = True 
     re.Pattern="\<(.+?)\>" 
     s=re.Replace(s,"") 
     regKillHTML=s 
     Set Re = Nothing 
End Function 

2,逐步分析


Function KillHTMLLabel(str) 
Dim n,m,str2 
m = 0 
n = inStr(str,"<") 
if n > 0 Then m = inStr(n,str,">") 
str2 = str 
Do while n > 0 and n < m 
  str2 = Left(str2,n-1) & Mid(str2,m+1) 
  n = inStr(str2,"<") 
  if n > 0 Then m = inStr(n,str2,">") 
Loop 
KillHTMLLabel = str2 
End Function 

3,使用split和join函数


Function killHtml(str)'by Fris @ 10:20 2009-2-19 www.by159.com 
If inStr(str,"<")=0 Then killHtml=str : Exit Function 
Dim Temp,i,j 
Temp=Split(str,"<") 
For i=1 to Ubound(Temp) 
  j=Instr(Temp(i),">") 
  If j>0 Then Temp(i)=Mid(Temp(i),j+1) Else Temp(i)="<"&Temp(i) End If 
Next 
killHtml=join(Temp,"") 
End Function 

以上三种方法都或多或少的存在一定的问题,可以看看下面特意构造的字符串来的处理结果.
想比较而言,第三种方法无论在效率和效果上,都较前两种方法更优,如果处理比较大的字符串,优势更加明显.

现在给出一个特意构造的字符串:

"最近看了<b>曹雪芹</b>的一部小说<<<a href=""mybook.zip"">红楼梦</a>>>(又名<<a href=""mybook.zip"">石头记</a>><b><font color=red><<<<<<</font>点击书名可以下载</b>),这部<<红楼梦>>讲述的是清末的故事." 

处理结果如下:

期望结果:  最近看了曹雪芹的一部小说<<红楼梦>>(又名<石头记><<<<<<点击书名可以下载),这部<<红楼梦>>讲述的是清末的故事.

方法1结果: 最近看了曹雪芹的一部小说红楼梦>>(又名石头记>点击书名可以下载),这部>讲述的是清末的故事.

方法2结果: 最近看了曹雪芹的一部小说红楼梦>>(又名石头记>点击书名可以下载),这部>讲述的是清末的故事.

方法3结果: 最近看了曹雪芹的一部小说<<红楼梦>>(又名<石头记><<<<<<点击书名可以下载),这部<>讲述的是清末的故事.

从上面的例子可以看出第三种方法处理的结果更加接近预期结果.

至于效率上,众所周知,拼接字符串效率比较低下,这里就不进行测试了.

 

标签:标签,html,函数,正则表达式,删除
0
投稿

猜你喜欢

  • asp Http_Referer,Server_Name和Http_Host

    2011-03-29 11:12:00
  • 使用正则表达式匹配tsql注释语句

    2024-01-18 16:42:50
  • 如何对PHP程序中的常见漏洞进行攻击

    2023-11-14 19:46:25
  • 详解django+django-celery+celery的整合实战

    2022-11-14 12:25:13
  • 利用python中pymysql操作MySQL数据库的新手指南

    2024-01-24 22:09:49
  • 对python中大文件的导入与导出方法详解

    2021-02-11 12:32:47
  • ASP利用 xmlhttp 分块上传文件

    2007-11-01 22:55:00
  • Win10安装MySQL5.7.18winX64 启动服务器失败并且没有错误提示

    2024-01-27 04:59:14
  • 用python爬取历史天气数据的方法示例

    2022-10-30 21:28:42
  • 详解Python中的路径问题

    2021-06-05 08:48:45
  • python语言基本语句用法总结

    2023-07-03 01:26:34
  • Python教程教你如何去除背景

    2023-01-08 17:19:40
  • IDEA版使用Java操作Redis数据库的方法

    2024-01-19 22:15:34
  • DTS构建组件及其如何完成数据转换服务

    2009-01-20 15:37:00
  • Python基于os.environ从windows获取环境变量

    2022-09-18 01:42:45
  • numpy.insert用法及内插插0的方法

    2023-03-28 10:06:13
  • Mootools 1.2教程(11)——Fx.Morph、Fx选项和Fx事件

    2008-12-04 16:03:00
  • keras Lambda自定义层实现数据的切片方式,Lambda传参数

    2021-03-18 09:16:20
  • 内容为空时提交如何处理

    2009-07-17 18:25:00
  • Sql Server中REPLACE函数的使用

    2024-01-25 10:48:51
  • asp之家 网络编程 m.aspxhome.com