Input Area and Three Samples
This tool's UI consists of a text input area and basic metrics on the left, with tab-switched visual graphs on the right. The input area starts with a placeholder prompting you to enter text.
When you paste text, React event listeners update the right-side graphs in real time. The top right offers Sample 1, Sample 2, and Sample 3 buttons to load dummy text.
Sample 1 loads an English translation of the text Rashomon. Sample 2 contains logical text on accessibility, and Sample 3 is a short-sentence essay.
At the bottom right are a copy button and a trash can clear button. The copy button copies the original input text rather than the metrics, displaying a success notice for about two seconds after the Clipboard API resolves.
If copying fails, an error message prompts you to manually select and copy the input text. All parsing is done synchronously in the browser via JavaScript; there is no input limit or Web Worker, so large texts may freeze the tab.
UTF-16 Code Units and Whitespace
The entered text is counted using standard JavaScript string functions. The total character count directly references the length property, which counts raw UTF-16 code units.
This means standard characters count as 1, but surrogate pairs count as 2 units. It calculates a no-space length by removing spaces, tabs, and newlines using the /\s/g regex.
The tool only measures physical string length; it does not perform word analysis.
Paragraph and Regex Sentence Splitting
Paragraph and sentence counts are calculated using regex splitting. Paragraphs are split by one or more consecutive newlines (/\n+/), then trimmed of whitespace, keeping only non-empty strings.
For sentences, the tool uses the regex /[^.!?.!?]+[.!?.!?]*/g, splitting at full-width or half-width periods, exclamation marks, and question marks.
Note that it frequently mis-splits on English abbreviations, decimals, and URLs, and Japanese 。 is not included as a delimiter.
The split string includes the ending punctuation mark, so the sentence length includes it. The paragraph structure tab shows a block meter of paragraph lengths categorized by hardcoded thresholds.
Averages and Population Standard Deviation
After calculating individual sentence lengths, the tool computes the average sentence length and the population standard deviation.
The average is the sum of all sentence lengths divided by the total number of sentences. The standard deviation uses the population formula (denominator N) to evaluate how much the lengths scatter from the average.
Based on these numbers, dynamic feedback strings are shown using preset thresholds like 25 or 60 characters. These feedback strings simply output text based on mathematical features and do not prove or guarantee the quality of the writing.
Five Buckets and Punctuation Ratios
The Sentence length distribution tab visualizes sentence lengths in a 5-bucket histogram (0-19, 20-39, 40-59, 60-79, and 80 characters and above).
The Comma ratio tab counts commas and periods using regex ([,,] and [..]). Note that the Japanese 、 and 。 are not counted.
The tool divides the comma count by the period count to find the commas per period ratio (if period count is 0, the ratio equals the comma count).
The UI color meter turns blue for <0.8, green for 0.8-2.2, and orange for >2.2. These bands are hardcoded presets, not academic ideals.
No Quality Guarantee for English
This tool only performs raw character counting and basic regex splitting. It does not evaluate text quality, understand semantics via AI, perform proofreading, measure reading time, or count SEO keywords.
The numerical thresholds like 25-60 characters or 0.8-2.2 ratio are hardcoded presets and do not represent absolute quality metrics.
Sentence length naturally varies by language, genre, and context. The results are merely auxiliary data for observing physical text distribution; users must review their original text and judge the need for revisions themselves.