当前位置: 首页 > 面试题库 >

截断长字符串的聪明方法

陈君之
2023-03-14
问题内容

有没有人比显而易见的解决方案/库更复杂的解决方案/库,用于使用JavaScript截断字符串并在末尾添加省略号:

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

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

现在您可以执行以下操作:

var s = 'not very long';
s.trunc(25); //=> not very long
s.trunc(5); //=> not ...

如果“更复杂”是指在字符串的最后一个单词边界处截断,那么这可能就是您想要的:

String.prototype.trunc =
     function( n, useWordBoundary ){
         if (this.length <= n) { return this; }
         var subString = this.substr(0, n-1);
         return (useWordBoundary 
            ? subString.substr(0, subString.lastIndexOf(' ')) 
            : subString) + "&hellip;";
      };

现在您可以执行以下操作:

s.trunc(11,true) // => not very...

如果您不想扩展本机对象,则可以使用:

function truncate( n, useWordBoundary ){
    if (this.length <= n) { return this; }
    var subString = this.substr(0, n-1);
    return (useWordBoundary 
       ? subString.substr(0, subString.lastIndexOf(' ')) 
       : subString) + "&hellip;";
};
// usage
truncate.apply(s, [11, true]); // => not very...


 类似资料:
  • 问题内容: 如何在Python中将字符串截断为75个字符? 这是用JavaScript完成的方式: 问题答案:

  • 问题内容: 我正在尝试从服务器获取JSON响应,并且当字符串长度达到约5525个字符时,响应字符串似乎总是被截断。 我还通过使用HttpEntity并读取响应流进行了尝试。但这也会在大约该长度处截断字符串。 请让我知道如何处理此问题。创建此文章时,我将其作为参考。 http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-rest

  • 问题内容: 有没有什么好方法可以用纯HTML和CSS截断文本,以使动态内容可以适合于固定宽度和高度的布局? 我一直在通过 逻辑 宽度(即盲目猜测的字符数)来截断服务器端,但是由于“w”比“i”宽,所以这往往不是最佳选择,并且还要求我重新猜测(并不断调整)每个固定宽度的字符数。理想情况下,截断将在浏览器中发生,该浏览器知道渲染文本的 _物理_宽度。 我发现IE的属性完全可以满足我的要求,但是我需要它

  • 问题内容: 我有一列字符串,每个字符串中都有一个城市,州和数字。 不仅限于此,但我想知道如何截断此列中的数字并仅显示城市和州,或者甚至更好地截断这些数字,然后将城市和州作为一个单独的列。 对于所有不同的记录,该列始终采用相同的格式。 谢谢! 问题答案: 没有为您做所有的工作… City:列的子字符串,从位置0到第一次出现逗号-1. State:列的子字符串,从第一次出现逗号后的2个位置到下一个空格

  • 根据指定的长度截断字符串。 确定字符串的 length 是否大于 num。 返回截断所需长度的字符串,用 '...' 附加到结尾或原始字符串。 const truncateString = (str, num) => str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str; truncateString('

  • 问题内容: 我敢肯定,我们所有人都在Facebook状态(或其他位置)上看到省略号,然后单击“显示更多”,并且只有另外两个字符左右。我猜这是由于懒惰的编程,因为肯定有一种理想的方法。 我的人把苗条的字符算作“半个字符”,但是当省略号几乎没有隐藏任何字符时,这并不能解决。 有没有理想的方法?这是我的: 语言并不重要,但可以标记为Java,因为这是我最感兴趣的内容。 问题答案: 我喜欢让“瘦”字符算作