TextSorter
0
Characters
0
No Spaces
0
Letters
0
Numbers
0
Words
0
Sentences
0
Paragraphs
0
Lines
Platform Character Limits
Twitter/X 0 / 280
Instagram 0 / 2,200
LinkedIn 0 / 3,000
YouTube Title 0 / 100
SMS 0 / 160
Meta Title 0 / 60
0 characters

What Actually Counts as a Character

Lead: the Characters count is text.length, JavaScript's own string length in UTF-16 code units. Most letters, digits and punctuation take one unit each, but a typical emoji takes two.

You type
Hello 😀
Characters shows
8

Type "Hello" on its own and the counter reads 5, one per letter. Add a space and a single smiley and it jumps to 8, not 7, because that one visible smiley face is stored internally as two UTF-16 code units rather than one. JavaScript's string length was designed around code units, not around what a reader would call a single visible character, and every character counter built on the standard .length property inherits that design. It is not a rounding quirk and it is not specific to this tool.

Plain ASCII text, the letters, digits and punctuation on a US keyboard, and most accented Latin letters like é or ñ, live inside the range JavaScript stores as one code unit each. Emoji live outside that range. Faces, hands, animals, food, most of the emoji you would reach for in a caption or a text message, are stored as a pair of code units called a surrogate pair, so each one adds 2 to the Characters count rather than 1.

It gets more expensive from there. Many emoji you think of as a single picture are actually several emoji joined invisibly with a zero-width joiner: a family, a couple holding hands, a person doing a specific job with a specific skin tone. The counter still measures every joined piece, because each piece is still a real character in the string. A four-person family emoji, for instance, is really four person emoji and three invisible joining characters stitched together, and it alone adds 11 to your Characters count. Skin-tone modifiers work the same way: adding a specific skin tone to a hand or a face emoji does not replace the base character, it appends an extra invisible code point on top of it, so a modified emoji almost always counts higher than the unmodified version you might compare it against.

Budgeting an SMS or a tight caption around emoji? Do not estimate by eye. One emoji you see as "1 character" can silently cost 2, 4, or 11 of your limit depending on how it is built. Paste the exact text you plan to send into this tool and read the real number off the Characters card rather than counting emoji by hand.

Characters Without Spaces: Every Whitespace Type Gets Stripped

Lead: the "No Spaces" count removes every whitespace character it finds, not just the space bar. Tabs, line breaks and returns all disappear along with plain spaces.

You type
Name:   Jordan
City:   Reno
Characters / No Spaces shows
27 / 20

That example carries 27 total characters once you count the three spaces after each colon and the line break between the rows, and the No Spaces figure drops it to 20. Seven characters vanish: three spaces on the first line, three on the second, and the single newline that separates the two rows. Swap those spaces for a tab character, which many spreadsheet and table pastes use instead of repeated spaces, and the result is identical: a tab is whitespace too, so it disappears from No Spaces exactly the same way a space does.

Whitespace typeTypical sourceStripped by "No Spaces"?
Regular spaceSpace barYes
TabTab key, pasted spreadsheet cellsYes
Line break / newlineEnter key, pasted paragraphsYes
Non-breaking spacePasted from web pages or WordYes

This matters most for anything you paste rather than type. Copy a paragraph out of a PDF, a spreadsheet, or a formatted email and you often carry along tabs, non-breaking spaces, or stray line breaks that do not show up as anything unusual on screen. The Characters card counts every one of them. The No Spaces card strips the whole family, which is the number to trust when a form or a limit is really asking "how much content is actually here," separate from how it happens to be formatted.

If you only need literal space bar presses removed and want tabs or line breaks left alone, this tool cannot split that hair; No Spaces treats all whitespace the same way. For that kind of surgical cleanup, the Clean Text tool gives you control over which whitespace gets touched.

Letters and Numbers Count Correctly in Every Script

Lead: the Letters and Numbers cards use Unicode's own letter and digit categories, so they work the same way on Arabic, Chinese, Cyrillic and accented Latin text as they do on plain English.

You type
A ação não é fácil
Letters shows
14

Every one of those 14 counted letters includes the accented ones: ç, ã twice, and é, and á. The four gaps between words are spaces, not letters, so they are correctly left out of that count. The same rule applies regardless of which alphabet or script you are working in, because the counter checks each character against Unicode's own definition of "letter" rather than against a fixed list of English ones.

ScriptExampleLetters counted
Accented Latin (Portuguese)ação4
Arabicمرحبا5
Chinese你好2

The Numbers card works the same way against digits. It is not scanning for the ten characters 0 through 9; it is matching Unicode's digit category, which also covers the Arabic-Indic digits used across the Arabic-speaking web and the digit forms used in several other scripts. Type ١٢٣ ١٢, five Arabic-Indic digits split into two groups, and the Numbers card reads 5, the same way it would read 123 12 in Western digits.

Put together, Letters plus Numbers will not always add up to Characters, and that is expected rather than a discrepancy to chase down. Spaces, punctuation, symbols and emoji all count toward Characters without counting as either a letter or a number, so a sentence full of commas and question marks will always show a smaller Letters number than its total Characters count.

Words: Hyphenated and Apostrophe Words Count as One

Lead: the Words card splits on whitespace only. A hyphen or an apostrophe inside a word does not split it into two.

You type
can't stop-and-go traffic
Words shows
3

That line reads as three words: can't, stop-and-go, and traffic, even though stop-and-go is built from three smaller words joined by two hyphens. The counting method is simple by design: trim the leading and trailing whitespace off the whole text, then split whatever remains everywhere one or more whitespace characters appear. A hyphen is not whitespace, and neither is an apostrophe, so neither one creates a split.

That single rule is why this Words number and a strict dictionary word count can drift apart on text that leans heavily on compound words, contractions, or hyphenated phrasing: "well-known," "mother-in-law," and "state-of-the-art" each land as one word here, matching how most word processors and style guides already treat them. The same splitting rule also means extra spacing never inflates the count: type "hello" and "world" with five spaces between them instead of one, and the Words card still reads 2, because a run of consecutive whitespace characters is treated as a single split point rather than one split per character.

Checking a title or a headline against a word-count rule? Paste it here rather than eyeballing it. Compound product names and hyphenated modifiers are the most common place a manual word count and this counter disagree, and the counter is applying the rule consistently every time.

Sentences: Why "Wait... really?" Counts as Two, Not Four

Lead: the Sentences card counts runs of terminating punctuation, not individual punctuation marks. An ellipsis or a stacked "?!" still counts as one sentence ending.

You type
Wait... really?
Sentences shows
2

It would be easy to assume that three dots plus one question mark adds up to four sentence endings, but the counter groups consecutive terminators, the period, exclamation point and question mark, into a single ending each time they appear back to back. "Wait" ends with the three-dot ellipsis, that whole run counts once, and "really" ends with the question mark, which counts once more. Two runs, two sentences, which matches how a person reading the line out loud would actually pause.

The same grouping applies to emphatic punctuation. "Save 20% today only!!!" reads as one sentence here, not three, because those three exclamation points form a single run at the very end of the line. Stack a question mark and an exclamation point together, as in "Really?!", and that pair also collapses into one counted ending rather than two.

This is a punctuation count, not a linguistic one. The counter has no idea what a sentence means; it only looks for periods, exclamation points and question marks. An abbreviation like "Dr." or a decimal like "3.5" adds a period the counter reads as a sentence ending, and a line with no terminating punctuation at all, however long, counts as zero sentences. Treat this number as a good proxy for editing tone and pacing, not as a guaranteed match to what a grammar textbook would count.

Paragraphs Count Blank Lines, Not Line Breaks

Lead: a new paragraph here means a blank line between blocks of text. Pressing Enter once, without a second blank line, keeps you inside the same paragraph.

You type
Dear team,
The launch moved to Friday.

Bring the updated deck.
Paragraphs / Lines shows
2 / 4

The first two lines of that message sit on separate lines but form one paragraph, because there is no blank line between them, only a single line break. The blank line before "Bring the updated deck" is what starts paragraph two. So the same short message reports 4 lines, since it spans four separate rows of text, but only 2 paragraphs, since only one of those row breaks is actually a blank one.

Lines and Paragraphs are answering genuinely different questions, and it is worth knowing that the counter's own Word Counter tool defines "paragraph" the other way: there, every line break starts a new paragraph, whether or not a blank line separates it from the line before. Neither definition is wrong; they are built for different jobs. This page's blank-line rule matches how word processors and CMS editors group paragraphs visually, while a line-per-paragraph rule suits plain lists and scripts where every line is its own unit regardless of spacing.

The Lines count carries one more quirk worth knowing before you rely on it: it counts line breaks, not lines of visible text, so a trailing blank line at the end of your text still adds one to the total. Paste three lines of text and hit Enter once more at the very end, leaving a blank final line, and Lines reports 4, not 3, because the count is really "how many line breaks split the text into pieces, plus one," and an empty final piece still counts as a piece.

Which Platform Limits This Page Tracks Live

Lead: the limits grid tracks six platforms at all times, and the "Focus on" dropdown above the editor adds two more with a dedicated progress bar for whichever one you pick.

PlatformLimit typeCharacter limitAlways visible?
Twitter/XPost280Yes
InstagramCaption2,200Yes
InstagramBio150Focus dropdown only
LinkedInPost3,000Yes
SMSSingle message160Yes
Meta titleSEO title tag60Yes
Meta descriptionSEO description tag160Focus dropdown only
YouTubeVideo title100Yes

The six always-visible cards sit under the "Platform Character Limits" heading and update on every keystroke, turning from green to amber past 90 percent of the limit and to red once you cross it, so you can watch several limits at once while you write without picking one first. Instagram bio and meta description are not part of that permanent row, since a limits grid with every platform in it would be more clutter than signal, but both are one click away.

The "Focus on" dropdown is where those two live, along with a single-platform progress bar for any of the eight. Pick a platform there and a dedicated bar appears above the six cards, tracking that one limit specifically as you type, with the same green, amber and red states. Meta title and meta description are worth pairing when you are writing for search results, since Google effectively truncates both independently, a title past 60 characters and a description past 160 each risk getting cut off or rewritten on the results page.

SMS at 160 characters reflects a single standard-length text message. Longer messages still send on most phones, but they get split into multiple 160-character segments behind the scenes and can be billed or throttled as more than one message depending on the carrier, so treat 160 as the number worth writing to, not just a soft suggestion.

Common Reasons People Land Here

Writing a caption or a post against a hard limit

Draft directly in the editor and watch the Twitter/X or Instagram card as you go, rather than writing in a notes app and pasting in to check afterward. Trimming three words after the fact is easy; realizing you are 40 characters over after you already liked the phrasing is not.

Fitting a meta title and description for search results

Select "Meta title" or "Meta description" from the Focus on dropdown and write straight against the 60 or 160 character bar. Both numbers matter independently: a strong title that runs long gets truncated in search results exactly like a description that runs long does, just at a different limit.

Keeping a text message to one segment

Select SMS from the dropdown and stay under 160. Past that point your message still arrives, split into multiple segments by the carrier, which is worth knowing before you assume a slightly-too-long text sends as cleanly as a short one.

Meeting a form or application field limit

Bio fields, application short-answer boxes and profile summaries almost always enforce a character limit rather than a word limit, and pasting your draft here shows you the exact number a strict form validator would see, tabs, line breaks and all, not just what looks short on screen.

Checking an essay or abstract against a strict character count

Some journals and application forms cap an abstract or a personal statement in characters rather than words specifically because character counts are unambiguous in a way word counts are not. The Characters and No Spaces cards give you both readings at once, so you can match whichever definition the form is actually using.

Comparing letter density across languages

Because Letters and Numbers are Unicode-aware, they give an honest count on Arabic, Chinese, Russian or accented European text, not just English. That makes this a reasonable way to sanity-check translated copy against a source text's rough length before it goes to a localization team.

Working out why a form keeps rejecting text as "too long"

When a submitted field bounces back as over the limit and the visible text looks short enough to fit, the gap is almost always one of the things covered above: an emoji quietly worth 2 or more characters, a pasted non-breaking space or tab the No Spaces count would catch, or a trailing blank line nudging the total past what you expected. Paste the exact text into the editor and the Characters card shows the number the form's own validator is actually working from, which is usually enough to spot the difference in a few seconds instead of guessing.

Frequently Asked Questions

How many characters can I fit in a tweet on Twitter/X?
Twitter/X posts are capped at 280 characters. This tool tracks that limit live in the always-visible limits grid, so the Twitter/X status changes from green to amber to red as you type.
Does an emoji count as one character or two?
Most emoji count as 2 characters, because JavaScript measures text length in UTF-16 code units and a typical emoji is stored as a pair of them. More complex emoji built from several joined pieces, like a four-person family emoji, count much higher; that one alone adds 11 characters.
What is the difference between "Characters" and "No Spaces"?
"Characters" counts every character in your text, including spaces, tabs, and line breaks. "No Spaces" removes all of those whitespace characters, not just literal space bar presses, before it counts what is left.
Do accented letters and non-English letters count in the Letters total?
Yes. The Letters count uses Unicode's own letter category rather than a fixed list of English letters, so accented Latin letters, Arabic letters, Cyrillic letters, and Chinese characters are all counted correctly.
Does the Numbers count only recognize the digits 0 through 9?
No. It matches Unicode's digit category, which also includes Arabic-Indic digits and the digit forms used in several other scripts, not only the ten Western digits.
How are words counted, and do hyphenated words count as one word or two?
Words are counted by trimming the text and splitting it wherever one or more whitespace characters appear. A hyphen or an apostrophe inside a word does not create a split, so "well-known" and "can't" each count as a single word.
Why does "Wait... really?" count as two sentences instead of four?
The Sentences count groups consecutive terminating punctuation, periods, exclamation points, and question marks, into one sentence ending each time they appear together. The three-dot ellipsis after "Wait" counts once, and the question mark after "really" counts once more, for a total of two.
What counts as a paragraph on this page?
A paragraph is any block of text separated from the next one by a blank line. A single line break without a following blank line keeps two lines inside the same paragraph. This is different from the Word Counter tool, where every line break starts a new paragraph.
Why did my Lines count go up by one after I pressed Enter at the end of my text?
The Lines count is based on line breaks, so a trailing blank line at the end of your text still adds one more line to the total, even though that final line has no visible content of its own.
What is the difference between the Instagram caption limit and the Instagram bio limit?
An Instagram caption can run up to 2,200 characters, while an Instagram bio is capped at 150. The caption limit shows in the always-visible limits grid; choose "Instagram bio" from the Focus on dropdown to track the shorter bio limit instead.
Can I track more than one platform limit while I type?
The limits grid shows six platforms at once: Twitter/X, Instagram caption, LinkedIn, YouTube title, SMS, and meta title. The Focus on dropdown adds a dedicated progress bar for any of eight platforms, including two, Instagram bio and meta description, that are not part of the always-visible six.
Is my text stored or sent anywhere when I use this counter?
No. Every count updates locally in your browser using JavaScript. Nothing you type or paste is uploaded to a server or saved anywhere outside your own device.

Related Tools

🔒 100% Private

All character counting happens locally in your browser-your text is never uploaded or stored. Safe for confidential documents, passwords, and sensitive content.