场景:字符串处理函数,根据定义的长度截取字符串,超出部分裁掉追加……,很多时候网页上显示的内容需要缩成"..."该方法用于处理字符串显示固定长度,超长部分用"..."代替
方法一:
css实现多行文本溢出显示省略号
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
angular.module('modulename').filter('ellipsis', function () {
return function (value, wordwise, max, tail) {
if (!value) return '';
max = parseInt(max, 10);
if (!max) return value;
if (value.length <= max) return value;
var str_length = 0;
var str_len = 0;
str_cut = new String();
str_len = str.length;
for (var i = 0; i < str_len; i++) {
a = str.charAt(i);
str_length++;
if (escape(a).length > 4) {
//中文字符的长度经编码之后大于4
str_length++;
}
str_cut = str_cut.concat(a);
if (str_length >= len) {
if(wordwise) {
str_cut = str_cut.concat(tail||"...");
return str_cut;
}
}
}
//如果给定字符串小于指定长度,则返回源字符串;
if (str_length < len) {
return str;
}
});
使用:
<div title="{{text_}}"> {{text_ |ellipsis:true:20:' ...'}}</div>