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

2019-01-03 02:27发布

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

6条回答
欢心
2楼-- · 2019-01-03 03:00

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

查看更多
欢心
3楼-- · 2019-01-03 03:02
//去掉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)}
查看更多
可以哭但决不认输i
4楼-- · 2019-01-03 03:08

写个正则过滤掉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;

查看更多
祖国的老花朵
5楼-- · 2019-01-03 03:17

如图,什么意思??

查看更多
Emotional °昔
6楼-- · 2019-01-03 03:22

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

查看更多
Deceive 欺骗
7楼-- · 2019-01-03 03:27

去网上找个正则去掉文本中的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)   

查看更多
登录 后发表回答