Ví um post do Igor Escobar mostrando uma função de truncar palavras em php. Aí eu lembrei que um dia precisei fazer isso em javascript e resolvi postar tal função.
A função tem dois parâmetros, o texto e o limite de caracteres, e retorna sempre o texto com “…” no final. Veja a função:
function truncar(texto,limite){ if(texto.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; }
Agora vamos fazer uns testes:
var mensagem = "O técnico do Corinthians até elogiou a atuação de Rodrigo Martins Cintra."; alert(truncar(mensagem,70)); /* Retorno = O técnico do Corinthians até elogiou a atuação de Rodrigo Martins... */ alert(truncar(mensagem,60)); /* Retorno = O técnico do Corinthians até elogiou a atuação de Rodrigo... */ alert(truncar(mensagem,50)); /* Retorno = O técnico do Corinthians até elogiou a atuação... */ alert(truncar(mensagem,40)); /* Retorno = O técnico do Corinthians até elogiou a... */ alert(truncar(mensagem,30)); /* Retorno = O técnico do Corinthians até... */ alert(truncar(mensagem,20)); /* Retorno = O técnico do... */ alert(truncar(mensagem,80)); /* Retorno = O técnico do Corinthians até elogiou a atuação de Rodrigo Martins Cintra. */