Create a gist now

Instantly share code, notes, and snippets.

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.
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;
}
@diegofer

this work for me, thank you

@kidlab

Thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment