首页 新闻 会员 周边 捐助

asp.net razor 如何去掉html标签,只显示文字?

0
[已解决问题] 解决于 2018-04-05 17:41

asp.net razor 如何去掉html标签,只显示文字并限制最多字数? 如下图。

缘分0919的主页 缘分0919 | 初学一级 | 园豆:96
提问于:2016-09-03 09:56
< >
分享
最佳答案
0
//去掉html标签函数
@functions{
    public static string RemoveHtml(String html)
    {
        string text = System.Text.RegularExpressions.Regex.Replace(html, "<[^>]+>", "");
        text = System.Text.RegularExpressions.Regex.Replace(text, "&[^;]+;", "");
        return text;
    }
}

//其他页面调用函数(helpers为函数的页面名字)
@helpers.RemoveHtml(item.Content)}
缘分0919 | 初学一级 |园豆:96 | 2018-04-05 17:40
其他回答(5)
0

如图,什么意思??

Jeffcky | 园豆:2789 (老鸟四级) | 2016-09-03 11:38

列表页 文章用有图片显示出来了 我不要显示图片

支持(0) 反对(0) 缘分0919 | 园豆:96 (初学一级) | 2016-09-03 15:07
0

去网上找个正则去掉文本中的html标签,再截取长度

参考http://blog.csdn.net/gulijiang2008/article/details/7190281中的

////   <summary>   
  ///   去除HTML标记   
  ///   </summary>   
  ///   <param   name="NoHTML">包括HTML的源码   </param>   
  ///   <returns>已经去除后的文字</returns>   
  public   static   string   NoHTML(string   Htmlstring)   

balahoho | 园豆:2050 (老鸟四级) | 2016-09-03 15:01

 不知道怎么做了,我是初学者。

支持(0) 反对(0) 缘分0919 | 园豆:96 (初学一级) | 2016-09-03 15:09

@缘分0919: 先把给你参考的NoHTML方法copy到你项目中,然后把你要去掉html的字符串传到这个方法里面,返回的结果就是纯文字了,然后你要显示多少个字就再substring()一下

支持(0) 反对(0) balahoho | 园豆:2050 (老鸟四级) | 2016-09-03 15:18
0

这种东西一般就是,要么不考虑性能什么的,用正则,简便;要么就找专门的HTML解析程序。。。

顾晓北 | 园豆:10898 (专家六级) | 2016-09-05 11:34
0

考虑用js正则去掉html标签即可

webaspx | 园豆:1973 (小虾三级) | 2016-09-05 21:40
0

写个正则过滤掉html标签 后台过滤:

//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除<style></style>样式
Htmlstring = Regex.Replace(Htmlstring, @"<style[^>]*?>[\s\S]*?</style>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(?!img|p|/p|br).*?>", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, "/(?<=\" )style=\".*?\"/", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "style=\".+?\"", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
//Htmlstring.Replace("<", "");
//Htmlstring.Replace(">", "");
//Htmlstring.Replace("\r\n", "");
// Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;

小咩快跑 | 园豆:23 (初学一级) | 2016-12-30 15:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册