O Danilo (do Tidbits) aproveitou a idéia do Igor em fazer um truncate de strings no PHP e fez uma função no javascript para isso – você passa a string e o limite de caracteres, se o tamanho dela for maior do que esse limite, ela corta e coloca três pontos no final.
Resolvi usar essa função do Daniel para adicionar um método de truncar ao objeto String do javascript. Com isso, ao invés de chamar a função passando o texto e o limite de caracteres, é só chamar o método passando o limite:
minhaString.truncar(limite);
Vamos à implementação, já com o exemplo de uso:
<html>
<head>
<title>Truncar – javascript</title>
<script type="text/javascript">
/*
adaptação da função truncar() feita pelo Danilo do Tidbits,
adicionando-a a classe String
Função original: http://www.tidbits.com.br/truncar-texto-em-javascript-abreviar-sem-cortar-palavras
*/
String.prototype.truncar = function(limite){
if(!limite)
throw "Limite não informado";
if(this.toString().length>limite){
limite–;
last = texto.substr(limite-1,1);
while(last!=" " && limite > 0){
limite–;
last = texto.substr(limite-1,1);
}
last = texto.substr(limite-2,1);
if(last == "," || last == ";" || last == ":"){
texto = texto.substr(0,limite-2) + "…";
} else if(last == "." || last == "?" || last == "!"){
texto = texto.substr(0,limite-1);
} else {
texto = texto.substr(0,limite-1) + "…";
}
}
return texto;
}
var texto = "Meu texto";
alert(texto.truncar(5));
</script>
<body>
</body>
</head>
</html>