高效的删除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