首页 新闻 会员 周边

文章如何截取前几行作为列表摘要

0
悬赏园豆:15 [已关闭问题] 关闭于 2010-01-22 13:18

有没有比较满意的函数

截取多少个字符这种,怕是不适合有html代码的文章吧。

请高手指点。

张三封的主页 张三封 | 初学一级 | 园豆:121
提问于:2010-01-20 17:07
< >
分享
所有回答(4)
0

貌似比较难写,我也坐沙发等答案,呵呵

Keep Walking | 园豆:73 (初学一级) | 2010-01-20 17:17
不是好同志啊
支持(0) 反对(0) 张三封 | 园豆:121 (初学一级) | 2010-01-20 17:46
0

        /// <summary>
        /// 将指定的字符截取指定的长度
        /// </summary>
        /// <param name="s">要截取的字符串.</param>
        /// <param name="length">要截取的长度.</param>
        /// <param name="filterHtml">是否过滤html标签.</param>
        /// <param name="endWithPoints">是否以省略号结尾.</param>
        /// <param name="trim">是否去除左右两端的空白字符(过滤完html标签之后)</param>
        /// <returns>string.</returns>
        public static string BreakString(string s, int length, bool filterHtml, bool endWithPoints, bool trim) {
            if (string.IsNullOrEmpty(s)) {
                return s;
            }
            if (filterHtml) {
                s = Regex.Replace(s, @"<\/*[^<>]*>", "");
            }
            if (trim) {
                s = s.Trim();
            }
            StringBuilder result = new StringBuilder();
            for (int x = 0, len = 0; x < s.Length; x++) {
                if (Convert.ToInt32(Convert.ToChar(s.Substring(x, 1))) > 255) {
                    len += 2;
                }
                else {
                    len++;
                }
                if (len > length) {
                    if (endWithPoints) {
                        result.Append("...");
                    }
                    break;
                }
                result.Append(s.Substring(x, 1));
            }
            return result.ToString();
        }

I,Robot | 园豆:9783 (大侠五级) | 2010-01-20 17:24
如果要保留html样式,又不会把html代码截断一部分,eg:<div class= 不知兄台可以做到不?
支持(0) 反对(0) 张三封 | 园豆:121 (初学一级) | 2010-01-20 17:46
0

遇到过,碰到那种图片性的文章更麻烦,一直没解决

古史漫谈 | 园豆:200 (初学一级) | 2010-01-20 18:30
想了2天,自己解决了!
支持(0) 反对(0) 张三封 | 园豆:121 (初学一级) | 2010-01-22 13:18
0

楼主,你解决了要把方案贴出来呀。。

sunrongshuai | 园豆:154 (初学一级) | 2012-07-01 00:22

很久了。。代码片段好像没找到...

支持(0) 反对(0) 张三封 | 园豆:121 (初学一级) | 2012-07-01 21:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册