Truncate long strings with ellipsis, useful for previews and card layouts.
export function truncateString(
str: string,
maxLength: number,
suffix: string = '...'
): string {
if (str.length <= maxLength) {
return str;
}
return str.slice(0, maxLength - suffix.length) + suffix;
}When displaying text in cards, previews, or limited space, you often need to truncate long strings. This utility makes it easy to cut text at a specific length with an ellipsis.
export function truncateString(
str: string,
maxLength: number,
suffix: string = '...'
): string {
if (str.length <= maxLength) {
return str;
}
return str.slice(0, maxLength - suffix.length) + suffix;
}
truncateString("This is a very long string", 20);
// => "This is a very lon..."
truncateString("Short", 20);
// => "Short"
truncateString("Hello world", 8, "...");
// => "Hello..."
export function truncateStringAtWord(
str: string,
maxLength: number,
suffix: string = '...'
): string {
if (str.length <= maxLength) {
return str;
}
const truncated = str.slice(0, maxLength);
const lastSpace = truncated.lastIndexOf(' ');
if (lastSpace > 0) {
return truncated.slice(0, lastSpace) + suffix;
}
return truncated + suffix;
}
This version respects word boundaries, avoiding cuts in the middle of words:
truncateStringAtWord("This is a very long string", 20);
// => "This is a very..."
text-overflow: ellipsis for single-line truncation.A simple utility that helps keep your UI clean and prevents text overflow in constrained layouts.