public
Last active

Javascript: Truncate a paragraph to maxLength characters. It does not break a single words. ellipseText is optional (default: … ) It will not work on characters that are not a letter A-Z or number. It backtracks until there is a space and add the ellipseText.

  • Download Gist
truncText.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
function truncText (text, maxLength, ellipseText){
ellipseText = ellipseText || '…';
if (text.length < maxLength)
return text;
 
//Find the last piece of string that contain a series of not A-Za-z0-9_ followed by A-Za-z0-9_ starting from maxLength
var m = text.substr(0, maxLength).match(/([^A-Za-z0-9_]*)[A-Za-z0-9_]*$/);
if(!m) return ellipseText;
//Position of last output character
var lastCharPosition = maxLength-m[0].length;
//If it is a space or "[" or "(" or "{" then stop one before.
if(/[\s\(\[\{]/.test(text[lastCharPosition])) lastCharPosition--;
//Make sure we do not just return a letter..
return (lastCharPosition ? text.substr(0, lastCharPosition+1) : '') + ellipseText;
}

this work for me, thank you

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.