如果截取处未关闭标签,向下找关闭标签,再截取
来源:互联网 发布:计算机二级vb题库 编辑:程序博客网 时间:2024/05/16 10:37
来源:http://topic.csdn.net/u/20080829/14/458c71bb-3e9b-4a84-a1e5-8a66813ea208.html
public string GetContentSummary(string content, int length, bool StripHTML)
{
if (string.IsNullOrEmpty(content) || length == 0)
return "";
if (StripHTML)
{
System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex("<[^>]*>");
content = re.Replace(content, "");
content = content.Replace(" ", "").Replace(" ", "").Replace(" ", "");
if (content.Length <= length)
return content;
else
return content.Substring(0, length) + "...";
}
else
{
if (content.Length <= length)
return content;
int pos = 0, npos = 0, size = 0;
bool firststop = false, notr = false, noli = false;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
while (true)
{
if (pos >= content.Length)
break;
string cur = content.Substring(pos, 1);
if (cur == "<")
{
string next = content.Substring(pos + 1, 3).ToLower();
if (next.IndexOf("p") == 0 && next.IndexOf("pre") != 0)
{
npos = content.IndexOf(">", pos) + 1;
}
else if (next.IndexOf("/p") == 0 && next.IndexOf("/pr") != 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
sb.Append("<br />");
}
else if (next.IndexOf("br") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
sb.Append("<br />");
}
else if (next.IndexOf("img") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
size += npos - pos + 1;
}
}
else if (next.IndexOf("li") == 0 || next.IndexOf("/li") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
}
else
{
if (!noli && next.IndexOf("/li") == 0) { sb.Append(content.Substring(pos, npos - pos));
noli = true;
}
}
}
else if (next.IndexOf("tr") == 0 || next.IndexOf("/tr") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
}
else
{
if (!notr && next.IndexOf("/tr") == 0)
{
sb.Append(content.Substring(pos, npos - pos));
notr = true;
}
}
}
else if (next.IndexOf("td") == 0 || next.IndexOf("/td") == 0)
{
npos = content.IndexOf(">", pos) + 1;
if (size < length)
{
sb.Append(content.Substring(pos, npos - pos));
}
else
{
if (!notr)
{
sb.Append(content.Substring(pos, npos - pos));
}
}
}
else
{
npos = content.IndexOf(">", pos) + 1;
sb.Append(content.Substring(pos, npos - pos));
}
if (npos <= pos)
npos = pos + 1;
pos = npos;
}
else
{
if (size < length)
{
sb.Append(cur);
size++;
}
else
{
if (!firststop)
{
sb.Append("...");
firststop = true;
}
}
pos++;
}
}
return sb.ToString();
}
}
- 如果截取处未关闭标签,向下找关闭标签,再截取
- 截取窗口关闭事件
- struts标签截取
- Struts2标签截取字符串
- sturts2 标签截取字符串
- struts2标签截取字符串
- 标签:截取字符串
- fn标签截取字符串
- Struts标签截取字符串
- emeditor保存上次未关闭的文件标签
- spring boot解决thymeleaf标签未关闭错误
- JSTL,STRUCT2标签截取字符串
- 截取中文字符串,做成标签。
- struts2标签截取字符串方法
- Struts标签中截取内容
- jstl-c标签截取字符串
- 双击tabControl关闭标签
- JS关闭chrome标签
- usaco Chapter 3 section 3.3 Shopping Offers
- 12.9
- FreeTextBox 光标处插入html内容
- 最令我。。。。的一首诗
- SmartGwt: attempt to use DataSource of type iscServer without SmartClient Server option.
- 如果截取处未关闭标签,向下找关闭标签,再截取
- Oracle Concept 的一些笔记 -- Data Dictionary
- How to handle a double in CAD modeling
- linux下获取用户基本信息
- 嵌入式FTP服务器的移植与配置:VSFTPD-2.0.6移植
- 关于Use MFC in a Shared DLL和Use MFC in a Static Library 转换遇到的问题
- fd
- 网页优化的若干准则
- 大家好