Skip to content

danielvigaru/truncate-text-between-words

Repository files navigation

Truncates the text at the last space found before the given length. Adds "..." to indicate that the text is truncated.

CI npm Ko-fi

Usage

import {
    truncateText,
    getPositionOfLastSpaceBeforeIndex,
} from 'truncate-text-between-words';

Let's use this text as example:

// Lenght:        5    10   15   20   25
//                ↓    ↓    ↓    ↓    ↓
const TEXT = 'Lorem ipsum dolor sit amet.';

truncateText

Parameters:

type TruncateTextOptions = {
    hideIfNoWords?: boolean;
    dotsInsteadOfEllipsis?: boolean;
};

truncateText(text: string, maxLength: number, options?: TruncateTextOptions);

Options

hideIfNoWords - default: false - Hide the ellipsis if there are no words to show

truncateText(TEXT, 3);
// Output: ...

truncateText(TEXT, 3, { hideIfNoWords: true });
// Output:

dotsInsteadOfEllipsis - default: false - Use three dots instead of the ellipsis unicode character U+2026

Other examples

truncateText(TEXT, 6);
// Output: Lorem...

truncateText(TEXT, 15);
// Output: Lorem ipsum...

truncateText(TEXT, 50);
// Output: Lorem ipsum dolor sit amet.

getPositionOfLastSpaceBeforeIndex

getPositionOfLastSpaceBeforeIndex(text: string, index: number);
getPositionOfLastSpaceBeforeIndex(TEXT, 3);
// Output: -1

getPositionOfLastSpaceBeforeIndex(TEXT, 6);
// Output: 5

getPositionOfLastSpaceBeforeIndex(TEXT, 15);
// Output: 11

getPositionOfLastSpaceBeforeIndex(TEXT, 50);
// Output: 21