Files
30-seconds-of-code/snippets/js/s/truncate-string-at-whitespace.md
2023-05-07 16:07:29 +03:00

1.2 KiB

title, type, language, tags, cover, dateModified
title type language tags cover dateModified
Truncate string at whitespace snippet javascript
string
cloudy-mountaintop-2 2020-10-21T21:17:45+03:00

Truncates a string up to specified length, respecting whitespace when possible.

  • Determine if String.prototype.length is greater or equal to lim. If not, return it as-is.
  • Use String.prototype.slice() and String.prototype.lastIndexOf() to find the index of the last space below the desired lim.
  • Use String.prototype.slice() to appropriately truncate str based on lastSpace, respecting whitespace if possible and appending ending at the end.
  • Omit the third argument, ending, to use the default ending of '...'.
const truncateStringAtWhitespace = (str, lim, ending = '...') => {
  if (str.length <= lim) return str;
  const lastSpace = str.slice(0, lim - ending.length + 1).lastIndexOf(' ');
  return str.slice(0, lastSpace > 0 ? lastSpace : lim - ending.length) + ending;
};
truncateStringAtWhitespace('short', 10); // 'short'
truncateStringAtWhitespace('not so short', 10); // 'not so...'
truncateStringAtWhitespace('trying a thing', 10); // 'trying...'
truncateStringAtWhitespace('javascripting', 10); // 'javascr...'