Como posso truncar uma string em jQuery?

Eu tenho títulos longos e quero truncá-los, mas de uma maneira que nenhuma palavra quebra, quero dizer o corte acontecer entre as palavras não cortando uma palavra.

Como posso fazer isso usando jquery?

De: truncamento de texto jQuery (leia mais estilo)

Tente isto:

var title = "This is your title"; var shortText = jQuery.trim(title).substring(0, 10) .split(" ").slice(0, -1).join(" ") + "..."; 
  • Testado aqui

E você também pode usar um plugin:

  • Plugin de expansão do jQuery

Como uma extensão da String

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

Use como

 "This is your title".trimToLength(10); 

A solução acima não funcionará se a string original não tiver espaços.

Tente isto:

 var title = "This is your title"; var shortText = jQuery.trim(title).substring(0, 10) .trim(this) + "..."; 
  function truncateString(str, length) { return str.length > length ? str.substring(0, length - 3) + '...' : str } 

Em vez de usar o jQuery, use a propriedade css text-overflow:ellipsis . Truncará automaticamente a string.

 .truncated { display:inline-block; max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } 

com protótipo e sem espaço:

  String.prototype.trimToLength = function (trimLenght) { return this.length > trimLenght ? this.substring(0, trimLenght - 3) + '...' : this };