长字符串的剪裁(后台方式)
2010-12-02 15:44
253 查看
考虑到有许多浏览器不兼容CSS,text-overflow的方式剪裁字符串加上“...”,网上也有提供全兼容的解决办法,但怎么样都没有后台处理字符串的方式来的直接。
下面我就给出后台处理的代码:
之所以重载一下区分中英文,是因为中英文字符,即使长度相同,但显示的宽度并不一样,一般中文字符的宽度是一个英文字符的两倍左右,非等宽字体除外。
如果区分了中英文,那么显示的长字符串宽度基本上差不多。
逻辑:
遍历整个字符串;
提取每个字符,判断是否是中文字符;
如果不是,则将截取的长度加1,否则继续遍历;
循环结束,按照新的长度裁剪字符串;
下面我就给出后台处理的代码:
/// <summary> /// 提供字符串操作 /// </summary> public static class StringHelper { /// <summary> /// 按照指定的长度剪裁字符串 /// </summary> /// <param name="originalString">原始字符串</param> /// <param name="length">剪裁长度</param> /// <returns>剪裁后的字符串</returns> public static string CropString(string originalString, int length) { if (length < originalString.Length) { return originalString.Substring(0, length) + "..."; } else return originalString; } /// <summary> /// 按照指定的长度可区分中英文剪裁字符串 /// </summary> /// <param name="originalString">原始字符串</param> /// <param name="length">剪裁长度</param> /// <param name="isSeparate">是否区分中英文</param> /// <returns>剪裁后的字符串</returns> public static string CropString(string originalString, int length, bool isSeparate) { if (!isSeparate) { return CropString(originalString, length); } else { int len = length; for (int i = 0; i < (length > originalString.Length ? originalString.Length : length); i++) { Regex rx = new Regex("^[\u4e00-\u9fa5]$"); if (!rx.IsMatch(originalString[i].ToString())) { len++; } } return CropString(originalString, len); } } }
之所以重载一下区分中英文,是因为中英文字符,即使长度相同,但显示的宽度并不一样,一般中文字符的宽度是一个英文字符的两倍左右,非等宽字体除外。
如果区分了中英文,那么显示的长字符串宽度基本上差不多。
逻辑:
遍历整个字符串;
提取每个字符,判断是否是中文字符;
如果不是,则将截取的长度加1,否则继续遍历;
循环结束,按照新的长度裁剪字符串;
相关文章推荐
- 前台用的是ajax请求,后台json字符串拼接方式
- 长字符串的剪裁(前台方式)
- 利用拼接字符串的方式来写一个简化版的后台网站(推荐初学者进)
- java前后台之间传值的几种方式
- node 使用get和post向后台请求数据的使用方式对比
- OpenGL_ES|WinCE纹理贴图的方式绘制字符串
- Java 5种字符串拼接方式性能比较。
- iOS拼接json字符串的两种方式
- ASP.NET基础教程-以查询字符串的方式在两个页面之间传递信息
- python 字符串换行的三种方式
- 移动客户端与后台通信方式三
- 普通按钮的另一种提交方式(调用后台事件)
- Jsf 后台管理Bean获得页面值的几种方式(一)
- 实现字符串以PascalCase方式命名
- 生成大量随机字符串不同实现方式的效率对比
- linq 实现查询字符串拼接 : And 和 OR 两种方式
- c#中字符串编码方式的转换,附带程序uft8到gb2312的互换
- asp.net后台对sql语句排序,筛选,gridview隐藏过长的字符串鼠标放上去显示全部,dropdownlist在前台显示拼接字符串
- 如何不用 eval 的方式通过字符串调用 JavaScript 的方法
- Python翻转字符串或者列表的方式