SQL去除字符串中HTML标签

当一个字段中存储有带有html标签的字符串,而我们想获取的是该字符的纯文本时应该怎么处理,其中一个实现方法就是创建一个去html的函数,当需要时直接调用即可。

自定义函数如下:

create function ClearHtml (@input_str varchar(8000))
returns varchar(8000)
as
begin
    declare @randchar_one nvarchar(200)
    declare @randchar_two nvarchar(200)
       if(charindex('<<',@input_str)>0)
           begin
              set @randchar_one='D4678B36-B958-4274-B81E-BBA636CFB427'
              set @randchar_two='49E374CC-9E1A-4850-897C-27074DE32E7F'
              set @input_str=replace(@input_str,'<<',@randchar_one)
              set @input_str=replace(@input_str,'>>',@randchar_two)
           end
    declare @i int
    while 1 = 1
    begin
       set @i=len(@input_str)
       if charindex('>',@input_str)-charindex('<',@input_str)>-1
            set @input_str=replace(@input_str, substring(@input_str,charindex('<',@input_str),
                charindex('>',@input_str)-charindex('<',@input_str)+1),space(0))
       if @i=len(@input_str)
       break
    end
    set @input_str=replace(@input_str,' ','')
    set @input_str=replace(@input_str,' ','')
    set @input_str=ltrim(rtrim(@input_str))
    set @input_str=replace(@input_str,char(9),'')
    set @input_str=replace(@input_str,char(10),'')
    set @input_str=replace(@input_str,char(13),'')
    if(charindex(@randchar_one,@input_str)>0)
    begin
       set @input_str=replace(@input_str,'D4678B36-B958-4274-B81E-BBA636CFB427','<<')
       set @input_str=replace(@input_str,'49E374CC-9E1A-4850-897C-27074DE32E7F','>>')
    end
    return (@input_str)
end
go

创建函数之后,调用方法如下:

select dbo.ClearHtml('<a href="www.baidu.com">一叶蓝馨的博客</a>--<p><font color="red">SQL字符串去除HTML标签</font></p>')  

运行结果:

一叶蓝馨的博客--SQL去除字符串中HTML标签
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值