如何用让 javascript 更智能的截取字符串长度

发布于 2022-08-23 23:52:28 字数 153 浏览 8 评论 0

现在使用的方法比较土鳖,每次都要用下面这句来实现,不知道大家有没有更健壮的方法或者有现成的库可以参考?

if(string.length > 100) {
    string = string.substring(0,100)+"...";
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幽梦紫曦~ 2022-08-30 23:52:28

提问者其实可以用css来实现这种效果的,这个比任何的js都要好的。代码如下:

.overflowStringContainer{width:300px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}

text-overflow最初是IE的一个私有属性,现在已经被纳入css3里面,兼容性列表可查看:http://www.zhangxinxu.com/css3/css3-t...,截至2011.11.7,IE,firefox,Opera,safari,chrome的最新版本已经都完全支持此属性。

不知道你是不是说每次都写这一句很麻烦呀?
如果是的话你可以将截取单独写成函数,需要的时候调用传递参数就可以了:

String.prototype.trunc = function(n){
    return this.substr(0,n-1)+(this.length>n?'...':'');
};

使用:

var s = 'hello everyone';
s.trunc(30); //=> hello everyone
s.trunc(5); //=> hell...

不过这种方法经常会把英文单词掰坏,不能算智能,不知道有没有人能改进。

日记撕了你也走了 2022-08-30 23:52:28

来个换汤不换药的, 这种东东用 python 的切片操作就舒服了

var trim = function(str,limit){
    return str[limit] ? [str.substring(0,limit),''].join('...') : str;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文