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