去除字符串中的html标记及标记中的内容

--1、创建函数

create function [dbo].[clearhtml] (@maco varchar(8000))

returns varchar(8000) as begin

declare @i int

while 1 = 1

begin

set @i=len(@maco)

set @maco=replace(@maco, substring(@maco,charindex(‘<‘,@maco),

charindex(‘>‘,@maco)-charindex(‘<‘,@maco)+1),space(0))

if @i=len( @maco )

break

end

set @maco=replace(@maco,‘ ‘,‘‘)

set @maco=replace(@maco,‘&nbsp;‘,‘‘)

set @maco=ltrim(rtrim(@maco))

set @maco=replace(@maco,char(9),‘‘)

set @maco=replace(@maco,char(10),‘‘)

set @maco=replace(@maco,char(13),‘‘)

return (@maco)

end

--2、测试示例

declare @mark varchar(8000)

set @mark=‘<body><div id=u><a href=http://passport.baidu.com/?login&tpl=mn>登录</a></div><center><img src=http://www.baidu.com/img/baidu_logo.gif width=270 height=129 usemap="#mp" id=lg><br><br><br><br><table cellpadding=0 cellspacing=0 id=l><tr><td><div id=m><a onclick=s(this) href=http://news.baidu.com>新&nbsp;闻</a><b>网&nbsp;页</b><a onclick=s(this) href=http://tieba.baidu.com>贴&nbsp;吧</a><a onclick=s(this) href=http://zhidao.baidu.com>知&nbsp;道</a><a onclick=s(this) href=http://mp3.baidu.com>MP3</a><a onclick=s(this) href=http://image.baidu.com>图&nbsp;片</a><a onclick=s(this) href=http://video.baidu.com>视&nbsp;频</a></div></td></tr></table>

<table cellpadding=0 cellspacing=0 style="margin-left:15px"><tr valign=top><td style="height:62px;padding-left:92px" nowrap><div style="position:relative"><form name=f action=/s><input type=text name=wd id=kw size=42 maxlength=100> <input type=submit value=百度一下id=sb><div id=sug onselectstart="return false"></div><span id=hp><a href=/search/jiqiao.html>帮助</a><br><a href=/gaoji/advanced.html>高级</a></span></form></div></td></tr></table>

</body>‘

select dbo.clearhtml (@mark)

--3、运行结果

/*

new

---------------------------------------

登录新闻网页贴吧知道MP3图片视频帮助高级

*/

/*

但是上面的函数还存在问题,如果内容中有“《》”或是“<<>>”这样的标记,则不能达到我们的要求。

*/

--加强版

create function [dbo].[clearhtml_V2] (@maco varchar(8000))

returns varchar(8000)

as

begin

declare @randchar_one nvarchar(200)

declare @randchar_two nvarchar(200)

if(charindex(‘<<‘,@maco)>0)

begin

set @randchar_one=‘D4678B36-B958-4274-B81E-BBA636CFB427‘;

set @randchar_two=‘49E374CC-9E1A-4850-897C-27074DE32E7F‘;

set @maco=replace(@maco,‘<<‘,@randchar_one)

set @maco=replace(@maco,‘>>‘,@randchar_two)

end

declare @i int

while 1 = 1

begin

set @i=len(@maco)

set @maco=replace(@maco, substring(@maco,charindex(‘<‘,@maco),

charindex(‘>‘,@maco)-charindex(‘<‘,@maco)+1),space(0))

if @i=len( @maco )

break

end

set @maco=replace(@maco,‘ ‘,‘‘)

set @maco=replace(@maco,‘&nbsp;‘,‘‘)

set @maco=ltrim(rtrim(@maco))

set @maco=replace(@maco,char(9),‘‘)

set @maco=replace(@maco,char(10),‘‘)

set @maco=replace(@maco,char(13),‘‘)

if(charindex(@randchar_one,@maco)>0)

begin

set @maco=replace(@maco,‘D4678B36-B958-4274-B81E-BBA636CFB427‘,‘<<‘)

set @maco=replace(@maco,‘49E374CC-9E1A-4850-897C-27074DE32E7F‘,‘>>‘)

end

return (@maco)

end

select dbo.clearhtml_V2(‘<p>aaaa</p><<本草纲目>><a href="www.baidu.com" />‘)

--运行结果:

/*

aaaa<<本草纲目>>

*/

时间: 2024-10-13 09:02:57

去除字符串中的html标记及标记中的内容的相关文章

标记由物联网中的物体产生的原始数据的方法及系统

本发明公开涉及标记由物联网中的物体产生的原始数据的方法及系统.所述方法包括:包括:对获得的Web消息进行相关性检测以获得与各种事件相关的Web消息:获取所述相关的Web消息所包含的地址信息:基于所获得的地址信息确定与所述各种事件接近的物体:以及使用所述相关的Web消息的至少部分内容作为元数据,标记由所确定的接近物体产生的原始数据.通过使用本发明,使得可以给人类难以理解的来自各种各样物体的原始数据添加自然语言的元数据,以便可以使用自然语言来进行检索和进行数据挖掘. 技术领域 [0001] 本发明公

JavaScript中String对象处理HTML标记中文本的方法

big():创建一个<big></big>标记,将这个字符串的字体变大blink():创建一个<blink></blink>标记,使字符串具有闪烁效果bold():创建一个<bold></bold>标记,使字符串加粗显示fixed():创建一个<tt></tt>标记,使字符串固定倾斜显示italics():创建一个<i></i>标记,使字符串以斜体显示small():创建一个<sm

python_如何去除字符串中不想要的字符?

案例: 过滤用户输入中前后多余的空白字符 '    ++++abc123---    ' 过滤某windows下编辑文本中的'\r': 'hello world \r\n' 去掉文本中unicode组合字符,音调 "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng" 如何解决以上问题? 去掉两端字符串: strip(), rstrip(),lstrip() #!/usr/bin/python3 s = ' -----abc123++++ ' # 删除两边空字符 p

js去除字符串中所有html标签及&amp;nbsp符号

近日在做项目的时候,经常会在页面上处理一些数据.结果发现自己js掌握的并不是很好.那就在这里记录js的点点滴滴吧. 1. 去除字符串中的 html 标签 function delHtmlTag(str){ return str.replace(/<[^>]+>/g,""); } var str = "<span style='display:none;'>This is test</span><br/>"; st

去除字符串中的空格

用C语言写一个函数,去除字符串中的空格,并返回删除的空格的个数.不允许开辟新的空间,只能申请简单类型的自动变量.时间复杂度要求为O(n). #include <bitset> #include<iostream> int deleteSpace(char * pstr); void main() { char word[]="dhkak df d fd fdjfkda dfd ff f fd da "; deleteSpace(word); std::cout&

用较小的代价去除字符串中的空格

题目: 用C语言写一个函数,去除字符串中的空格,并返回删除的空格的个数.不允许开辟新的空间,只能申请简单类型的自动变量.时间复杂度要求为O(n). 比如:char str[]="dhkak   df d fd     fdjfkda     dfd   ff f  fd da "; 处理之后: str[]="dhkakdfdfdfdjfkdadfdffffdda"; 返回删除空格的个数为:12算法思想: 先取字符串的长度,然后用前后各一个指针,分别为p,q,使前面一

去除字符串中连续重复的字符

目的:把字符串中连续重复的字符赐除掉. 输入:序列:kkkhan888shioobo66 正确的返回结果应该是:hanshibo 思路解析 1 使用JAVA正则表达式,匹配出连续相同的字符或数字. 2 查找出匹配出来的序列,并取出来放到list里面 3 对list进行排序.把重复的序列排在前面.(该步可省略) 4找出连续重复的子序列,并把这些连续重复的子序列用空(字字符串)替换. 5 返回输出. code public class Test { public static void main(S

Xcode中文件名旁边的小标记的作用

这两天老大教会了我要留意Xcode中文件名右边的小标记,例如: 这里的M就是Xcode中类名旁边的一个symbol,还有A,D等,这些标记用于显示当前文件和代码仓库中该文件对比后的状态: M = Locally modified U = Updated in repository A = Locally added D = Locally deleted I = Ignored R = Replaced in the repository – = The contents of the fold

Java脚本:去除字符串中空值

    /**      * @title 去除以','作为分隔符的字符串中的空值      *         从数据库中获取的个别字段,当其值为',"***","***"," ","***"'的时候,      *         可以通过该方法将其中的首分隔符和数据中为空的部分去除掉,      *         该字符串转化成正常的数据字符串' "***","***",&quo

J脚本:去除字符串中的空值 完整版

    <script>         /**         * 去除以','作为分隔符的字符串中的空值,         */         function strChange(str){             return srtChange(str,null);         }                  /**         * 去除字符串中的空值         * str : 要去除空值的字符串         * split: 分隔符(默认为',')