网络编程
位置:首页>> 网络编程>> Asp编程>> 高效的删除HTML标签的函数

高效的删除HTML标签的函数

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

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

这里提供三种方法:

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

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

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

 

0
投稿

猜你喜欢

  •  在我们设计网页的时候,总会遇到一些不愉快的事情,最常见的莫过于在后台添加内容后才发现显示的页面被撑开,导致网页极度不美观。以前大
  • 层的八条定律当然,这些并非真正的定律,而只是一些有益的忠告,使你免陷于使用层时可能的困顿中。原来有九条定律的,我们精简掉一条,还有下面的八条
  •   基于ASP技术开发Internet/Intranet上的MIS系统是非常方便的,首先是它借用了ADO技术和概念,同时
  • 相关的题外话:一、操作系统window系统内部都是unicode的。文件夹名,文件名等都是unicode的,任何语言系统下都能正常显示。二、
  • <%'解析一个xml文件的公用函数集合dim document'装载一个xml文档,函数名Loaddocument(文
  • Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就
  • 内容摘要:网页设计师制作网页最常用的设计软件应该就算adobe的产品Photoshop了,当然Photoshop不仅可以设计网页,不过作为网
  • DROP PRIMAY DEY用于取消主索引。注释:在MySQL较早的版本中,如果没有主索引,则DROP PRIMARY KEY会取消表中的
  • 什么是Dynamic HTML 今天我们以问答的形式来讲述什麽是Dynamic Html。问:亲爱的网猴,我经常看到讲述有关“Dynamic
  • 1、最郁闷的发现!!先看代码:<style>#a #b #c span{color:red;}#b #c span{color:
  • 我正在开发一个档案管理系统,需要从数据库中同时调出图像及相关的文字说明,可我只做到了单纯地显示图片,像有一个数据库CHUNFENG,在数据库
  • 今天要处理通知书上的日期,写的一个处理程序,效率可能不是最优的,不过实现功能绝对没问题。注:月份和天要分>10,=10,<10三
  • 实现原理:将用户信息保存在数据库中,若能在数据库中检索到用户输入的姓名和口令,就允许访问该一页面。代码如下:protect.asp<h
  • 表单在提交前我们通常会用客户端JS对其内容进行验证,通常都是写一个函数然后在onsumbit事件中调用,如下:<html><
  • CSS 盒模型网页设计中的每个元素都是长方形的盒子。盒子的尺寸是怎样精确计算的,请看下图:如果是 Firebug 用户的话(基本和前端有关的
  • 如果您目前拥有一个冷备份,但是缺少了其中的一个数据文件,但你目前存在所有的归档,如果您要恢复数据文件,可以参考以下的示例:[oracle@j
  • 译序:本文译自Smashingmagazine,但是原文讲述的内容有些浅,也不是很完整,前端观察在翻译的前提下,增加了更多的更系统的内容。如
  • Dreamweaver MX 2004新增加了表格宽度辅助线功能,让我们在编辑网页表格的时候能清楚地看到表格中各单元的宽度以及变化,很直观。
  • 在我们写样式的时候,页面的CSS在经历几个版本的修改之后,可能有些样式已经用不到了,或许将某些样式更名了而原来的忘了删除,总之页面中可能存在
  • 最近对动易CMS有个研究任务,具体研究什么,嘿嘿,保密。网络收集了九个常见的错误原因分析及解决方法错误提示: ADODB.Recordset
手机版 网络编程 asp之家 www.aspxhome.com