Eu não sou um profissional de JS, mas descobri algumas maneiras de fazer isso.
O HTML:
<p id="truncate">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi elementum consequat tortor et euismod. Nam commodo consequat libero vel lobortis. Morbi ac nisi at leo vehicula consectetur.</p>
Em seguida, com o jQuery, você o trunca para uma contagem de caracteres específica, mas deixa a última palavra como esta:
// Truncate but leave last word
var myTag = $('#truncate').text();
if (myTag.length > 100) {
var truncated = myTag.trim().substring(0, 100).split(" ").slice(0, -1).join(" ") + "…";
$('#truncate').text(truncated);
}
O resultado fica assim:
Lorem ipsum dolor sente-se no meio, consectetur elip adipiscing. Morbi
elementum consequat tortor et…
Ou você pode simplesmente truncá-lo para uma contagem de caracteres específica como esta:
// Truncate to specific character
var myTag = $('#truncate').text();
if (myTag.length > 15) {
var truncated = myTag.trim().substring(0, 100) + "…";
$('#truncate').text(truncated);
}
O resultado fica assim:
Lorem ipsum dolor sente-se no meio, consectetur elip adipiscing. Morbi
elementum consequat tortor et euismod…
Espero que ajude um pouco.
Aqui está o jsFiddle .