truncate-text-between-words
Version:
Truncates the text at the last space before the given length.
84 lines (58 loc) • 2.06 kB
Markdown
Truncates the text at the last space found before the given length. Adds "..." to indicate that the text is truncated.
[](https://github.com/danielvigaru/truncate-text-between-words/actions/workflows/node.js.yml)
[](https://www.npmjs.com/package/truncate-text-between-words)
[](https://ko-fi.com/Y8Y1DZBZU)
## Usage
```javascript
import {
truncateText,
getPositionOfLastSpaceBeforeIndex,
} from 'truncate-text-between-words';
```
### Let's use this text as example:
```javascript
// Lenght: 5 10 15 20 25
// ↓ ↓ ↓ ↓ ↓
const TEXT = 'Lorem ipsum dolor sit amet.';
```
## truncateText
Parameters:
```typescript
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
```javascript
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
```javascript
truncateText(TEXT, 6);
// Output: Lorem...
truncateText(TEXT, 15);
// Output: Lorem ipsum...
truncateText(TEXT, 50);
// Output: Lorem ipsum dolor sit amet.
```
## getPositionOfLastSpaceBeforeIndex
```typescript
getPositionOfLastSpaceBeforeIndex(text: string, index: number);
```
```javascript
getPositionOfLastSpaceBeforeIndex(TEXT, 3);
// Output: -1
getPositionOfLastSpaceBeforeIndex(TEXT, 6);
// Output: 5
getPositionOfLastSpaceBeforeIndex(TEXT, 15);
// Output: 11
getPositionOfLastSpaceBeforeIndex(TEXT, 50);
// Output: 21
```