SQL里清除html标签 问题
ALTER function [dbo].[FN_ClearHtml] (@maco nvarchar(max))
returns nvarchar(max)
as
begin
declare @randchar_one nvarchar(max)
declare @randchar_two nvarchar(max)
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,' ','')
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
这个函数能够清除html标签,但是有大于或者小于号,函数报错 请问下大家如何修改呢?
------解决方案--------------------
不太好办.
因为你没办法将标签的尖括号与大于或小于号区分开,网页上的内容太多变了,很难判断.
------解决方案--------------------叶子博客里好像有个替换,去看看http://hi.csdn.net/maco_wang