Result
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| What gets capitalized | The first letter character found on each line — Latin or Cyrillic |
|---|---|
| How the letter is found | Leading spaces, quotes, dashes and digits are skipped; the letter itself is left alone otherwise |
| What stays the same | Every other letter on the line keeps its original case |
| Sentence mode | When on, also capitalizes the letter after ". ", "! " and "? " inside a line |
| Blank lines | Stay blank — there is nothing to capitalize, no error is raised |
| Line separator | A line break (\n) — the same boundary you see as a new line in the text box |
When it misleads you
- The tool looks for the first letter, not the first character: a line starting with "1. text" gets "t" in "text" capitalized, not the digit — digits and punctuation are never capitalized.
- Sentence mode uses the same heuristic as a sentence counter: a period followed by a space. Abbreviations like "e.g. next" or a number like "3.14 apples" also trigger a capital letter after the period, even though no sentence actually ended there.
- A line made only of digits, emoji or punctuation with no letter at all is left completely unchanged — the tool never treats punctuation as the character to capitalize.
- Multiple spaces or a tab between the sentence-ending punctuation and the next word are handled the same as a single space in sentence mode — the pattern matches any run of whitespace.
How it is calculated
The text is split into lines on the line-break character. Each line has its first match of "first Latin or Cyrillic letter" replaced with its uppercase form — a replace without the global flag only touches the first match, the rest of the line is untouched.
The lines are then joined back together with line breaks in their original order — the number of lines and breaks never changes.
When sentence mode is on, a second pass runs over the already-joined text: it looks for a period, exclamation or question mark followed by one or more whitespace characters and a letter, and uppercases that letter — with the global flag this applies to every match in the text.
Both passes only ever touch letters — digits, punctuation, emoji and any other character never change case.
Questions and answers
What if a line starts with a digit or a quote instead of a letter?
The tool looks for the first letter, not the first character of the line. Digits, quotes, dashes and leading spaces are skipped, and the first real letter — wherever it is — gets capitalized.
Does it change the case of the rest of the line?
No. Only the first letter found on each line changes (and, with sentence mode on, the first letter after every ". ", "! ", "? "). Everything else stays exactly as in the original text.
Why does a capital letter appear after an abbreviation like "e.g."?
Sentence mode looks for a period followed by a space — it can't tell a sentence end from an abbreviation. On text with frequent abbreviations, turn sentence mode off and keep only the per-line capitalization.
What happens to blank lines?
They stay blank — there's nothing to capitalize, and the tool doesn't insert any characters into them.
Is the text sent anywhere while it's processed?
No, all processing runs directly in your browser and the text is never transmitted anywhere.