代码之家  ›  专栏  ›  技术社区  ›  Deniz Dogan

用省略号截断字符串,确保不破坏任何HTML实体

  •  2
  • Deniz Dogan  · 技术社区  · 15 年前

    我有一个包含XHTML内容的项目数据库,我想用去掉(完成)的HTML显示这些项目,然后将每个项目截断为最大长度为100个字符。如果字符串超过100个字符,我会将其切掉并插入 … (省略号)在结尾。

    问题是我的程序不理解 已经 在字符串中。例如,如果字符串是 something & something ,我的函数可以将其截断为 something &am... 导致 无效的XHTML .

    在ASP.NET/C中解决此问题的最佳方法是什么?

    2 回复  |  直到 15 年前
        1
  •  7
  •   Darin Dimitrov    15 年前

    你可以使用 HtmlDecode 若要将HTML实体转换为普通字符串,请截断此字符串并最终对结果进行编码:

    var decoded = HttpUtility.HtmlDecode(theEncodedString);
    decoded = Truncate(decoded);
    var result = HttpUtility.HtmlEncode(decoded);
    
        2
  •  0
  •   Guffa    15 年前

    您可以使用正则表达式来匹配HTML实体或单个字符,并重复到所需的长度。比如:

    ^(&\w+;|.){,100}