日期:2014-05-19  浏览次数:20947 次

如何实现截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题
如题
请高手赐教

------解决方案--------------------
还不是太明白楼主的意思,不过试着做了下,楼主看下是不是你想要的效果吧
以楼主所给代码为例
<h1> 标准的、语义的、Unobtrusive的页签切换 </h1>
<p> 返回 <a href= "http://realazy.org/blog/2007/02/22/standard-semantic-unobtrusive-tab/ "> 标准的、语义的、Unobtrusive的标签切换 </a> </p>
<h2> 例子1:点击激活 </h2>

上面的字符数为167

<h1> 标准的、语义的、Unobtrusive的页签切换 </h1>
<p> 返回 <a href= "http://realazy.org/blog/2007/02/22/standard-semantic-unobtrusive-tab/ "> 标准的、语义的、Unobtrusi

这个的字符数是135


我的理解是楼主想要想要135个字符以内,但又要标签完全闭合的子串
我的思路是,先取出指定字符数的子串,然后在此子串里再找出所有标签闭合的子串

string yourStr = .............;
if (yourStr.Length > 135)
{
yourStr = yourStr.Substring(0, 135);
}
Match m = Regex.Match(yourStr, @ "[\s\S]* </[^> ]*?> ");
if (m.Success)
{
string resultStr = m.Value;
}

取得的结果是
<h1> 标准的、语义的、Unobtrusive的页签切换 </h1>

我现在所不明白的是,当指定字符长度内,有没闭合的标签时,楼主是想舍弃它,还是一直保留到这个标签闭合,我这里做的是舍弃