我有一个包含 XHTML 内容的项目数据库,我想显示这些项目的 HTML 被剥离(完成),然后将每个项目截断为最大长度 100 个字符。如果字符串超过 100 个字符,我将其切断并…
在末尾插入(省略号)。
问题是我的程序不理解字符串中已经存在的 HTML 实体。例如,如果字符串是something & something
,我的函数可能会截断它,something &am...
从而导致无效的 XHTML。
在 ASP.NET/C# 中解决此问题的最佳方法是什么?
您可以使用HtmlDecode将 html 实体转换为普通字符串,然后截断此字符串并最终对结果进行编码:
var decoded = HttpUtility.HtmlDecode(theEncodedString);
decoded = Truncate(decoded);
var result = HttpUtility.HtmlEncode(decoded);
您可以使用正则表达式来匹配 HTML 实体或单个字符,并重复到您想要的长度。就像是:
^(&\w+;|.){,100}