camelCase to snake_case Converter
Renaming JavaScript fields for a Python backend, mapping JSON keys to Postgres columns, porting a codebase to a style guide — converting camelCase to snake_case is one of those chores that is trivial for one identifier and mind-numbing for two hundred. Paste your identifiers above (one per line, a whole block, or a mixed mess) and get snake_case back instantly.
The splitter is smarter than a find-replace: it recognizes acronym runs, so XMLHttpRequest becomes xml_http_request (never x_m_l_http_request), trailing acronyms like parseHTML become parse_html, and digits are handled sensibly — version2Update splits to version_2_update while short tokens like md5Hash stay glued as md5_hash. Unicode letters are lowercased with proper Unicode rules, so accented identifiers survive intact.
Everything runs locally in your browser; nothing is uploaded.
FAQ
How are acronyms converted from camelCase to snake_case?
Runs of capitals are treated as one word: XMLHttpRequest becomes xml_http_request and parseHTML becomes parse_html. A capital followed by lowercase letters starts a new word, which is the standard convention used by linters and style guides.
Does it handle numbers inside identifiers?
Yes. Digits after short prefixes stay attached (utf8 stays utf8, md5Hash becomes md5_hash), while a standalone number after a longer word becomes its own word — version2Update converts to version_2_update.
Can I convert many identifiers at once?
Yes. Paste as many lines or space-separated identifiers as you like — every word is split and converted in one pass, so bulk renames take seconds.