Files
30-seconds-of-code/snippets/truncate-string-at-whitespace.md
Angelos Chalaris 61200d90c4 Kebab file names
2023-04-27 21:58:35 +03:00

1.2 KiB

title, tags, cover, firstSeen, lastUpdated
title tags cover firstSeen lastUpdated
Truncate string at whitespace string cloudy-mountaintop-2 2020-10-19T11:11:16+03:00 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...'