Truncate text

Shortens each line to a maximum length, optionally without cutting a word.

Set a maximum length and press the button. Each line longer than the limit is shortened and an ellipsis is added; shorter lines are left alone.

Word-safe by default

Cutting text at exactly 100 characters lands you in the middle of a word — "the quick brown fo…" — which looks broken. With "Do not cut mid-word" on, the cut moves back to the last complete word, so you get "the quick brown…" instead. The result is always at or under your limit, never over.

Turn it off only when the limit is truly hard and every character counts, such as a database field with a fixed width where a word boundary is irrelevant. The "Hard cut, no suffix" button does exactly that: cut at the character, add nothing.

The suffix

By default a single ellipsis character (…) is added to show that text was cut. It is one character, not three dots, which matters when you are truncating to fit a limit — three dots eat three of your characters. Change it to ... if a system does not display the single character, or clear it entirely if you want no marker.

Remember the suffix counts toward the length. Truncating to 100 with a one-character ellipsis gives lines of at most 100 including the ellipsis, so the text itself is 99. If you need the text alone to be exactly 100, add one to the limit.

Where this is used

To check which lines are over the limit before truncating, the per-line counter flags them. To cut a fixed number of characters from the start rather than the end, use remove characters.

Doing it without this tool

Excel: =LEFT(A1, 100) hard-cuts. Word-safe truncation needs =LEFT(A1, FIND("~", SUBSTITUTE(A1, " ", "~", ...))) style trickery that few people write from memory.

Command line: cut -c1-100 file.txt hard-cuts each line; fold -sw 100 file.txt | head -1 approximates word-safe.

CSS: for display only, text-overflow: ellipsis truncates visually without changing the text, which is right for a web page but no help when you need the shortened text itself.

Try:
0Words
0Characters
0No spaces
0Sentences
0Paragraphs
0Lines
0Pages
0Reading
0Speaking

Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.

How to use it

  1. Paste your text into the box.
  2. Set the maximum number of characters.
  3. Leave "Do not cut mid-word" on so words stay whole.
  4. Press "Truncate". Remember the ellipsis counts toward the length.

Related tools

Wrap textBreaks long lines at a set column, always at a word boundary.Text repeaterRepeats your text as many times as you want, with any separator.Cut charactersCuts a fixed number of characters from the start or end of every line.Column ↔ comma listTurns lines into one separated string — and back again.Title case vs sentence caseThree style guides, three different answers, and the four-letter rule that…Fancy textOne box in, twelve Unicode styles out. Copy the one you want.Count words in Google DocsThe exact menu path in every app, and why two counters give you two different…

See all text tools →

Frequently asked questions

Will it cut a word in half?

Not with "Do not cut mid-word" ticked, which is the default. The cut moves back to the last complete word so the line stays at or under your limit. Untick it, or use "Hard cut", when the limit is truly rigid.

Does the ellipsis count toward the limit?

Yes. A line truncated to 100 with a one-character ellipsis is at most 100 including that character. Add one to the limit if the text alone must be the full length.

Why is the default ellipsis one character, not three dots?

Because the single … character takes one character instead of three, which matters when you are truncating to fit a limit. Change it to three dots if a system cannot display the single character.

Does it affect lines shorter than the limit?

No. Only lines longer than the maximum are shortened; everything else is left exactly as it is.

Can I truncate the whole text rather than each line?

It works per line, which suits lists and fields. For one continuous block, keep it on a single line or use split into chunks for length-limited pieces.