What this tool does
One line in, one line out, in the style you pick.
user profile ID
userProfileId camelCase
UserProfileId PascalCase
user_profile_id snake_case
user-profile-id kebab-case
USER_PROFILE_ID CONSTANT_CASE
Every line is converted on its own, so you can paste a whole list of names and get the list back. A line with no letters or digits in it is left exactly as it was.
Accents and other alphabets survive
déjà vu
Größe prüfen
ユーザー 名前
déjàVu
größePrüfen
ユーザー名前
The splitter used to work on ASCII letters only, which made é a separator like a space: déjà vu came out d_j_vu, and the accented letters were simply gone. A line with no ASCII letters at all — ユーザー 名前 — came back untouched, which hid the problem rather than showing it. Words are now found by Unicode letters, and nothing is dropped. That was a real defect, on a site translated into seven languages, found while writing this page and fixed.
Where a word ends
- At a separator. Spaces,
-,_,.,/and anything else that is neither a letter nor a digit. - At a capital.
userProfileis two words; so isuser2Profile, because a digit followed by a capital ends a word too. - At the end of an acronym.
HTTPServerErrorishttp,server,error— the run of capitals stays together until the last one, which starts the next word.
What it does not do
- Transliterate.
caféstayscafé,Grüßestaysgrüße. ASCII-folding is a per-language decision, not a case change. - Know your language’s keywords.
classandforcome out as they are; only you know whether the result is going into code that reserves them. - Touch numbers.
2fais one word, and it stays2fa— no capital can fall on a digit.
Private by design
Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.