JavaScript の例
JavaScript で snake_case を camelCase に変換
予測可能な snake_case ならアンダースコアで分割し、最初は小文字、後続 token を大文字始まりにします。
JavaScript コード
function snakeToCamel(value) {
const parts = value.trim().replace(/^_+|_+$/g, "").split(/_+/).filter(Boolean)
if (parts.length === 0) return ""
return parts[0].toLowerCase() + parts.slice(1).map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("")
}
snakeToCamel("user_profile_image")
// "userProfileImage"先頭/末尾のアンダースコアを除き、連続アンダースコアで空 token が生まれないよう処理します。
純粋な snake_case 向けです。PascalCase、略語、空白、ハイフンが混在する入力にはより一般的な tokenizer が必要です。
考慮すべきエッジケース
- API や URL などの略語はプロジェクト固有の casing が必要な場合があります。
- user_profile-URL のような混在形式は追加の tokenization が必要です。
- 1つの文字列変換と、object key の再帰変換は別問題です。
- 生成した変数名には予約語や識別子妥当性の確認が必要な場合があります。
例
| 変換前 | 変換後 |
|---|---|
| user_profile_image | userProfileImage |
| __user__profile__ | userProfile |
| api_response_url | apiResponseUrl |
| created_at | createdAt |
JavaScript コード
const cases = [
["user_profile_image", "userProfileImage"],
["__user__profile__", "userProfile"],
["api_response_url", "apiResponseUrl"],
["created_at", "createdAt"],
]
for (const [input, expected] of cases) {
console.assert(snakeToCamel(input) === expected, input)
}オンラインで変換を試す
ブラウザ版ツールで単発確認、バッチ、略語処理、混在した命名形式をテストできます。
検出: snake_case
camelCase 出力
userProfileImageUrl
すべての命名形式
camelCase
userProfileImageUrlPascalCase
UserProfileImageUrlsnake_case
user_profile_image_urlkebab-case
user-profile-image-urlCONSTANT_CASE
USER_PROFILE_IMAGE_URLdot.case
user.profile.image.urlpath/case
user/profile/image/url変換はブラウザ内で行われ、入力は変換サーバーへ送信されません。