zoukankan      html  css  js  c++  java
  • 去除字符串中的html标记及标记中的内容

    去除字符串中的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<<本草纲目>>

    */

  • 相关阅读:
    关于clipboard插件的使用问题
    js复制内容到剪切板,兼容pc和手机端,支持Safari浏览器
    CSS选择器复习
    关于ajaxFileUpload图片上传,success和error都触发的情况
    百度地图API,定位您的当前位置
    开发移动端web页面click事件失效问题
    开发移动端web应用, 使用手机自带键盘的搜索按钮
    原生JS实现一个简单的前端路由(原理)
    计算机网络 —— 网络层
    计算机网络 —— 数据链路层
  • 原文地址:https://www.cnblogs.com/accumulater/p/6244442.html
Copyright © 2011-2022 走看看