Skip to main content
NeatUtility

Case Converter

Text100% Client-Side
Ready
TEXT
0 lines0 chars
0 B / 1.91 MB
About this tool, examples & FAQ

Convert identifiers and multi-line text between camelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE, Title Case, dot.case, and path/case, entirely in your browser. Word boundaries are detected across acronyms, digits, and punctuation; converted text is not guaranteed to be a legal identifier in every language.

Key facts

Verified capabilities and limits of this utility
Accepted inputText identifiers, variable names, or multi-line lists
Conversion modescamelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE, Title Case, dot.case, path/case
Conversion optionsLine-by-line conversion with indentation preserved, letter-digit splitting, and acronym grouping
Max input size2 MB
Execution deadline1.5 s
Processing locationBrowser-only: pasted input is not uploaded

How to use

  1. Select your target case format from the operation tabs (camelCase, snake_case, kebab-case, and more).
  2. Paste your text or list of identifiers into the input pane.
  3. Toggle 'Convert Line-by-Line' when converting lists of variables, database columns, or code symbols.
  4. Click 'Run' to transform your text.
  5. Copy or download the transformed output.

Examples

Convert to camelCase

Input

hello world

Example output

helloWorld

Convert to snake_case

Input

hello world

Example output

hello_world

Edge cases

Acronym casing is normalized

Acronym boundaries are detected (XMLHttp splits into XML and Http), but the letters are recased per mode, so XML becomes Xml in camelCase and PascalCase output.

Digits split words by default

With digit splitting enabled, letter-digit transitions form word boundaries, so utf8Encode converts as three words (utf, 8, Encode).

Punctuation acts as separators

Dashes, underscores, dots, slashes, backslashes, commas, semicolons, colons, and pipes are treated as word separators before conversion.

Non-English text limitations

Word boundaries use ASCII-oriented rules, so non-Latin scripts and locale-specific casing rules may not split or case as expected.

How it works

  1. Splits input into words using separator characters, lowercase-to-uppercase transitions, acronym boundaries, and letter-digit transitions.
  2. Recases the word list according to the selected mode and joins with the mode separator.
  3. In line-by-line mode, converts each line independently while preserving leading indentation.
  4. Executes inside a Web Worker bounded by the tool deadline.

Frequently asked questions

What is the difference between camelCase and PascalCase?

Both join words without separators and capitalize each word after the first. camelCase starts lowercase (helloWorld) while PascalCase also capitalizes the first word (HelloWorld).

What is the difference between snake_case and kebab-case?

Both lowercase every word; snake_case joins with underscores (hello_world) and kebab-case joins with dashes (hello-world). Kebab-case suits CSS classes and URL slugs, snake_case suits Python and Ruby identifiers.

How are acronyms such as HTTPServer handled?

With acronym handling enabled (the default), consecutive uppercase letters are grouped as one word boundary, so HTTPServer splits into HTTP and Server. The letters are then recased per mode, producing forms like httpServer in camelCase.

Does it support non-English text?

Only partially. Boundary detection and casing follow ASCII-oriented rules, so accented or non-Latin text converts literally without language-aware word splitting or locale-specific casing.

How do I get plain UPPERCASE or lowercase text?

There are no separator-free upper/lower modes: CONSTANT_CASE uppercases with underscores, while snake_case, kebab-case, dot.case, and path/case lowercase with separators. Single-word input under those modes yields plain upper- or lowercase text.

References