命名規則変換について
TypeScript の camelCase、Python API の snake_case、URL の kebab-case など、境界ごとに表記がぶつかります。9 種のスタイルから選び、convertCase が区切りを解釈して再結合します。
「純粋な大小」(全大文字・全小文字・タイトル・文頭大文字)と「複合命名」(camel/Pascal/snake/kebab/定数)を分けています。hello_world と helloWorld は同じ語列に分解してから変換します。
できること
語の切り出し
- 小文字の直後の大文字(myVar)で camel 境界。
- ハイフン・アンダースコアは空白扱い。
- スペース区切りフレーズも語として認識。
- UPPER/lower/sentence は分割せず文字列全体に適用。
エコシステム別
- camelCase — JS/TS 変数、多くのフロント JSON。
- PascalCase — React/Vue コンポーネント、Java/C# 型名。
- snake_case — Python、PostgreSQL 列名。
- kebab-case — URL slug、HTML data 属性。
- SCREAMING_SNAKE — 環境変数、機能フラグ。
タイトル vs 文頭大文字
タイトル形式は各語の先頭を大文字(Hello World)。文頭大文字は文字列先頭のみ(Hello world)。英文タイトル規則の虚詞省略は未対応です。
限界
- HTTPResponse 等の略語分割は手直しが必要なことがある。
- トルコ語 i 等は JS 既定 Unicode ルール。
- 意味のリネーム(userId→accountId)は不可。
- 長文段落より識別子・短いフレーズ向け。
よくある使い方
snake → camel
user_profile_id を camel に → userProfileId。逆は Python fixture 用。
OpenAPI 境界
ドキュメント snake とクライアント camel の差をここで一度揃える。
CSS・ルート・manifest
PascalCase コンポ名を kebab の path に。SCREAMING_SNAKE env を kebab キー例に。
見出し・UI 文案
混在した草稿をタイトル形式や文頭大文字に素早く整える。
よくある質問
- オンラインで命名スタイルを変えるには?
- テキストを貼り、目標スタイルをクリックしてコピー。入力変更はリアルタイム反映。
- JSON は snake か camel?
- フロントは camel、Python 系は snake が多い。同じオブジェクトに混在させず境界で統一。
- camel と Pascal の違いは?
- camel は先頭語小写(myVar)、Pascal は各語先頭大写(MyVar)。リポの linter に合わせる。
- snake と kebab の選び方は?
- snake は Python/SQL 向き。kebab は URL/HTML。Python 変数に kebab は不可(減算と解釈)。
- 略語が変に split される?
- 大文字前で切るため HTTP Response になることあり。源文字列に _/- を入れて誘導するか手で直す。
- タイトル形式は虚詞を飛ばす?
- いいえ、認識した各語を大文字化。文頭大文字スタイルは別ボタンです。
- スペース入りフレーズは?
- スペースが語境界。UPPER/lower は空白含め全体に効きます(複合命名以外)。
- IDE のリファクタと同じ?
- いいえ。貼った文字列の表記だけ。import や DB 移行は IDE リネームを使ってください。