CamelCase to snake_case
Paste an identifier and copy a predictable snake_case result with explicit case, number, acronym, and Unicode rules.
Lowercase and uppercase boundaries, letter-number boundaries, acronym runs, and punctuation are handled locally. Unicode letters and numbers are retained; separators become underscores.
A QUICK WALKTHROUGH
How to use this tool
- Paste up to 100,000 characters.
- Review the live snake_case output.
- Copy the result or clear both fields.
Explicit boundaries
Lowercase-to-uppercase and acronym-to-word transitions create underscores. Letter-number and number-letter transitions also create underscores; digits stay unchanged. Punctuation and whitespace separate words, repeated separators collapse, and empty words are removed.
Unicode and local processing
Case, number, acronym, and punctuation boundaries are explicit. Unicode letters and numbers are retained, and each letter is lowercased with JavaScript Unicode case mapping. Conversion runs in your browser; text is not uploaded or stored.
GOOD TO KNOW
Common questions
How are numbers handled?
Digits are preserved and separated from adjacent letters: version2Parser becomes version_2_parser.
What happens to acronyms?
A boundary is placed before the final uppercase letter when an uppercase run is followed by a lowercase word: HTTPResponse becomes http_response.
Does it transliterate Unicode?
No. Unicode letters and numbers are retained; punctuation becomes a separator and no writing-system transliteration is promised.