大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

asp.net去除字符串中的HTML标签,只保留文字

Admin | 2016-1-11 9:05:01 | ReadNums | 1280 | 标签 asp.net | 打印本页
     

  在asp.net中,有的时候我们需要将带有HTML标记的字符串插入到数据库中,但是,从数据库中显示读取数据显示出来的时候,可不一定需要这些字符串中的标记,而仅仅需要保留文字而已。

  比如,如果字符串的内容为如下的内容:

  回复第<span style="color:#009900;"><strong>9</strong></span>个问题

  这个时候,如果我们将上面的字符串作为网页的标题文字的话,那么,显示的时候必然是不正常的,而这个时候,我们只需要文字部分,不需要标记标签部分,现在,我们要做的就是从数据库中读取字符串内容后,如何去除这些HTML标签。

  第一步:引入

  using System.Text.RegularExpressions;

  因为我们要使用正则的办法去除HTML标记,所以要引入。

  第二步:使用下面的函数

  public string FilterHtmlCode(string strInput) //过滤掉字符串中出现的HTML的标记
    {
        string strRet = strInput;
        while (strRet.IndexOf("<style", StringComparison.InvariantCultureIgnoreCase) >= 0 && strRet.IndexOf("</style", StringComparison.InvariantCultureIgnoreCase) >= 0)
        {
            strRet = strRet.Substring(0, strRet.IndexOf("<style", StringComparison.InvariantCultureIgnoreCase)) + strRet.Substring(strRet.IndexOf("</style", StringComparison.InvariantCultureIgnoreCase) + 8, strRet.Length - strRet.IndexOf("</style", StringComparison.InvariantCultureIgnoreCase) - 8);
        }

        while (strRet.IndexOf("<script", StringComparison.InvariantCultureIgnoreCase) >= 0 && strRet.IndexOf("</script", StringComparison.InvariantCultureIgnoreCase) >= 0)
        {
            strRet = strRet.Substring(0, strRet.IndexOf("<script", StringComparison.InvariantCultureIgnoreCase)) + strRet.Substring(strRet.IndexOf("</script", StringComparison.InvariantCultureIgnoreCase) + 9, strRet.Length - strRet.IndexOf("</script", StringComparison.InvariantCultureIgnoreCase) - 9);
        }
        strRet = Regex.Replace(strRet, @"<style>[^<]*</style>", "");
        strRet = Regex.Replace(strRet, @"<script>[^<]*</script>", "");
        //strRet = Regex.Replace(strRet, @"<script[\s\S]+</script *>", "");
        strRet = Regex.Replace(strRet, "<[^{><}]*>", "");

        return strRet;
  }

  第三步:调用方法

  FilterHtmlCode("这里是字符串的原始内容");


问题未解决:在线咨询我要在线咨询问题

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日