padStart · padEnd · custom char

Pad lines to a fixed width

Pad each line left or right with any character. Perfect for zero-padded IDs and fixed-width columns.

Pad Text Workspace
Lines
4
15 B
Width
8
padStart
Pad char
"0"
single char
Output
35 B
padded
WidthPad char
input · lines
output · padded
00000005
00000042
00001024
00099999
Quick Start

How to pad text

Pads each line to a fixed width using String.padStart() (pad left) or padEnd() (pad right). Common for zero-padded numeric IDs.

  1. 01

    Paste lines

    One value per line.

    Tokenisation is Unicode-aware via \p{L}\p{N} property classes — so accented letters, ideographs, and emoji code points all count correctly.

    linesUTF-8Unicodecode pointslive
    input · textraw · UTF-8
    5
    42
    loaded · UTF-8UTF-8 · ready
  2. 02

    Pick side

    Pad left = padStart (typical for numbers). Pad right = padEnd (typical for table columns).

    Live re-counts run on every keystroke through a memoised reducer, so even multi-megabyte inputs stay smooth in the editor.

    padStartpadEndlivememoisedoptions
    side · optionsleft · live
    00000005
    00000042
    options applied · livelive
  3. 03

    Set width & char

    Width is the target total length. Pad char defaults to 0 — try space, dot, or any single char.

    Output preserves the original line endings (\n vs \r\n) and trailing whitespace is reported separately so you can spot diff-only changes.

    widthcharline endingswhitespacediff-clean
    config · counted8 · 0 · ready
    00000123
    counted · livecounted
  4. 04

    Copy or download

    One click.

    Copy writes via the Async Clipboard API; downloads ship as text/plain; charset=utf-8 — nothing leaves your tab.

    copyclipboardtext/plainblobclient-side
    export · copiedready · done
    ✓ Copied
    shipped · ready to shipsuccess
Pro tips

Text-processing fundamentals worth knowing

Tokenise with Unicode classes

Use \p{L}\p{N} with the u flag so accents, ideographs, and emoji count properly.

Normalise line endings

Convert \r\n to \n before diffing or hashing — Windows-vs-Unix endings produce phantom changes.

Mind invisible characters

Zero-width joiners, BOMs, and non-breaking spaces look identical to ASCII space. Strip them before comparison or storage.

Stream don’t slurp

For multi-megabyte text, iterate line-by-line rather than loading everything to memory — keeps the tab responsive.

Choose collation deliberately

Default JS sort is code-point order, not human alphabetical. Use Intl.Collator for locale-aware sorting.

Re-run after normalisation

NFC vs NFD changes byte length but not visible glyphs. String.prototype.normalize() before counts and comparisons.

Use Cases

When to pad text

Anywhere fixed-width formatting matters.

Zero-padded IDs

5 → 00005 for filesystem ordering or DB indexes.

Unicode-correct

Fixed-width columns

Old systems that parse columns by character offset. Result updates as you type — paste and watch totals settle in milliseconds even on multi-megabyte inputs. Heavy work runs through a memoised reducer so the editor never janks.

diff-clean

Receipt formatting

Right-align dollar amounts. Output normalises line endings to LF for clean diffs across platforms. Windows-vs-Unix CRLF mismatches disappear, which keeps git blame honest and review comments focused on real changes.

instant counts

Order numbers

ORDER-000123 style sequential IDs. Code-point counts are stable across NFC/NFD normalisation. Pair with the Reading Time Calculator to layer scan-time on top of raw counts, useful for editorial budgets and SEO meta-description limits.

platform-aware

ASCII tables

Pad right with spaces for clean ASCII tables. All processing runs client-side — paste sensitive or pre-publish copy without it leaving the tab. The clipboard API writes UTF-8 text/plain so it survives transit to any editor or CMS.

code-point-accurate

Hex padding

0x0001 instead of 0x1 for memory addresses. Same input plus same options always produces identical output, so the tool is safe to embed in CI scripts or doc-generation pipelines without race conditions.

lossless
FAQ

Frequently asked questions

It's left as-is — never truncated. Use Truncate Text for that.
Only single chars in the UI. Use Add Prefix/Suffix for multi-char wraps.
Uses String.length (UTF-16 code units), not graphemes. Emoji may not align visually.
Left = padStart (zeros before number). Right = padEnd (spaces after text).
No. All processing runs locally.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!