有没有人有一个更复杂的解决方案/库,用于使用 JavaScript 截断字符串并在末尾添加省略号,而不是显而易见的:
if (string.length > 25) {
string = string.substring(0, 24) + "...";
}
原文由 naltatis 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有人有一个更复杂的解决方案/库,用于使用 JavaScript 截断字符串并在末尾添加省略号,而不是显而易见的:
if (string.length > 25) {
string = string.substring(0, 24) + "...";
}
原文由 naltatis 发布,翻译遵循 CC BY-SA 4.0 许可协议
请注意,这只需要为 Firefox 完成。
所有其他浏览器都支持 CSS 解决方案(请参阅 支持表):
p {
white-space: nowrap;
width: 100%; /* IE6 needs any width */
overflow: hidden; /* "overflow" value must be different from visible"*/
-o-text-overflow: ellipsis; /* Opera < 11*/
text-overflow: ellipsis; /* IE, Safari (WebKit), Opera >= 11, FF > 6 */
}
具有讽刺意味的是,我从 Mozilla MDC 获得了该代码片段。
原文由 mwilcox 发布,翻译遵循 CC BY-SA 3.0 许可协议
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
本质上,您检查给定字符串的长度。如果它比给定长度
n
长,则将其剪辑为长度n
(substr
或slice
)并添加 html 实体…
(…) 到被剪断的字符串。这样的方法看起来像
如果“更复杂”是指在字符串的最后一个单词边界处截断,那么您需要进行额外检查。
首先将字符串剪辑到所需的长度,然后将结果剪辑到最后一个单词的边界
您可以使用您的函数扩展本机
String
原型。在这种情况下,应删除str
参数,并将函数中的str
替换为this
:更教条的开发人员可能会为此强烈谴责你(“ _不要修改你不拥有的对象_”。不过我不介意)。
一种不扩展
String
原型的方法是创建您自己的辅助对象,包含您提供的(长)字符串
以及前面提到的截断它的方法。这就是片段
下面是。
最后,您只能使用 css 来截断 HTML 节点中的长字符串。它使您的控制更少,但很可能是可行的解决方案。