2016-10-13 00:16:48 点击量:9 标签: 收藏本文
在flash开发中经常会遇到这样的问题,文字过长要截断的部分,中英文同样用substr截取6个加上"..."效果如下:
abcdef...
甲乙丙丁戊己...
看起来十分丑陋,一般来说一个中文的宽度大致和2个英文、数字或者符号的宽度相近,记得在PHP开发中,曾经模拟网上的做法自己改了一个截字的方法,地址: http://compig.net/blog/?p=50
关键在与获取字符的ascii码,如果大于192,则为汉字,进行长度的特殊处理:
- /**
- * 截取字符,中文算2格,英文算1格
- * @param str
- * @param length
- * @return
- */
- public static function cutStr(str:String = "", length:uint = 0):String
- {
- var res:String = "";
- var i:uint = 0;
- var n:uint = 0;
- var str_length:uint = 0;
- while (i <str.length&&n<length*2)
- {
- if (str.charCodeAt(i)> 192)
- {
- nn = n + 2;
- }
- else
- {
- n++;
- }
- res += str.charAt(i);
- i++;
- }
- if (res.length <str.length)
- {
- res += "..";
- }
- return res;
- }
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室