刚开始采用直接截断字符串,发现行不通,fckeditor提交的文章,每一段就是一个div块,如果正好截到段中会造成div块不闭合,严重影响页面css显示。所以就写了这个按照div块来截断文章的方法。
/**/
/// <summary>
/// 获取指定个数的Div块。
/// 主要用在页面显示部分,保证CSS显示正常。
/// </summary>
/// <param name="input">需要处理的字符串。</param>
/// <param name="time">需要处理的div块个数。</param>
/// <returns>处理结果。</returns>
public static string SubDivString( string input, int time)
{
Regex re = new Regex(@"(?<div><div>.*?</div>)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Multiline);
MatchCollection matchs = re.Matches(input);
StringBuilder sb = new StringBuilder();
for (int i = 0; (i < matchs.Count) && (i < time); i++)
{
sb.Append(matchs[i].Groups["div"].Value);
}
return sb.ToString();
}
/// 获取指定个数的Div块。
/// 主要用在页面显示部分,保证CSS显示正常。
/// </summary>
/// <param name="input">需要处理的字符串。</param>
/// <param name="time">需要处理的div块个数。</param>
/// <returns>处理结果。</returns>
public static string SubDivString( string input, int time)
{
Regex re = new Regex(@"(?<div><div>.*?</div>)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Multiline);
MatchCollection matchs = re.Matches(input);
StringBuilder sb = new StringBuilder();
for (int i = 0; (i < matchs.Count) && (i < time); i++)
{
sb.Append(matchs[i].Groups["div"].Value);
}
return sb.ToString();
}