Как я могу обрезать строку в jQuery? - PullRequest
61 голосов
/ 09 января 2011

У меня длинные названия, и я хочу их обрезать, но так, чтобы слова не ломались, я имею в виду, что между словами не происходит разрезание слова.

Как я могу сделать это с помощью jquery?

Ответы [ 5 ]

122 голосов
/ 09 января 2011

От: jQuery усечение текста (стиль читать дальше)

Попробуйте это:

var title = "This is your title";

var shortText = jQuery.trim(title).substring(0, 10)
    .split(" ").slice(0, -1).join(" ") + "...";

И вы также можете использовать плагин:

Какрасширение строки

String.prototype.trimToLength = function(m) {
  return (this.length > m) 
    ? jQuery.trim(this).substring(0, m).split(" ").slice(0, -1).join(" ") + "..."
    : this;
};

Использовать как

"This is your title".trimToLength(10);
38 голосов
/ 04 октября 2012

Решение выше не будет работать, если в исходной строке нет пробелов.

Попробуйте это:

var title = "This is your title";
var shortText = jQuery.trim(title).substring(0, 10)
                          .trim(this) + "...";
36 голосов
/ 16 декабря 2013
  function truncateString(str, length) {
     return str.length > length ? str.substring(0, length - 3) + '...' : str
  }
6 голосов
/ 24 мая 2017

Вместо использования jQuery используйте свойство css text-overflow:ellipsis.Он автоматически обрезает строку.

.truncated { display:inline-block; 
             max-width:100px; 
             overflow:hidden; 
             text-overflow:ellipsis; 
             white-space:nowrap; 
           }
1 голос
/ 16 ноября 2016

с прототипом и без пробела:

 String.prototype.trimToLength = function (trimLenght) {
    return this.length > trimLenght ? this.substring(0, trimLenght - 3) + '...' : this
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...