实现思路:
- 首先确定你希望显示的文本总长度(包括省略号)。
- 然后取出文本的前半部分和后半部分,长度均为总长度减去省略号长度再除以2。
- 最后将前半部分和后半部分用省略号连接起来即可。
function truncateMiddle(s, max_length) { if (s.length <= max_length) { return s; } const ellipsis = '...'; const charsToShow = max_length - ellipsis.length; const frontChars = Math.ceil(charsToShow / 2); const backChars = Math.floor(charsToShow / 2); return s.substr(0, frontChars) + ellipsis + s.substr(s.length - backChars); }
注:函数接收两个参数分别为要截断的字符串
s
和最大长度max_length