高效的删除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结果: 最近看了曹雪芹的一部小说<<红楼梦>>(又名<石头记><<<<<<点击书名可以下载),这部<>讲述的是清末的故事.
从上面的例子可以看出第三种方法处理的结果更加接近预期结果.
至于效率上,众所周知,拼接字符串效率比较低下,这里就不进行测试了.


猜你喜欢
- 使用web.py做http server开发时,遇到postman能够正常请求到数据,但是浏览器无法请求到数据,查原因之后发现是跨域请求的问
- 1.事件绑定函数事件绑定函数有三个如下: 组件.bind('事件类型',
- 本文实例讲述了php基于协程实现异步的方法。分享给大家供大家参考,具体如下:github上php的协程大部分是根据这篇文章实现的:http:
- 正文首先得说明的是,Python的类分为经典类 和 新式类经典类是python2.2之前的东西,但是在2.7还在兼容,但是在3之后的版本就只
- 引用PyMongo>>> import pymongo创建连接Connection>>> import
- 介绍海象运算符,即 := ,在 PEP 572 中被提出,并在 Python3.8 版本中发布。海象运算符的英文原名叫Assignment
- 1.高阶函数# 1.变量指向函数# 调用函数和函数本身print("-10的绝对值为:",abs(-10))print(
- 前端开发环境多数基于Node.js,好处不多说了。但与使用Visual Studio开发的后端Asp.Net Core项目一起调试,却不是很
- 1 项目背景1.1Python的优势Python有成熟的程序包资源库和活跃的社区 Python以PYPI为技术支撑,资源丰富,可被灵活调用。
- 前言: 在数据库运维过程中,我们时常会关注数据库的链接情况,比如总共有多少链接、有多少活跃链接、有没有执行时间过长的链接等。数据库
- 本文实例为大家分享了JavaScript实现动态数字时钟的具体代码,供大家参考,具体内容如下实现效果代码实现<!DOCTYPE htm
- Sun周三宣布,准备以10亿美元收购MySQL开源数据库公司。据悉,Sun将支付大约8亿美元现金给MySQL,以获得其私募股票,另外,Sun
- 为了安全起见,需要经常对数据库作备份,或者还原。对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出、导入功能了,但
- 百度作业帮提问:python if not in 多条件 判断怎么写s = ['1','2'] 判断条件st
- 前言在ECMAScript中,有两个最常用的创建函数对象的方法,即使用函数表达式或者使用函数声明。对此,ECMAScript规范明确了一点,
- 因为有时直接使用pip install在线安装 Python 库下载速度非常慢,所以这里介绍使用 Anaconda 离线安装 Python
- 在使用json.dumps时要注意一个问题>>> import json>>> print json.d
- 绘制一个菱形四边形,边长为 200 像素。方法1和2绘制了内角为60和120度的菱形,方法3绘制了内角为90度的菱形。方法1
- 在前几章节中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍
- 我们平日办公时用得最多的软件是Execl、Word或WPS Office等,你的计算机中一定储存着大量的XLS、DOC、WPS文件吧!网页制