JavaScript 예시
JavaScript에서 snake_case를 camelCase로 변환
예측 가능한 snake_case라면 밑줄로 나누고 첫 token은 소문자, 이후 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이 필요합니다.
- 문자열 하나 변환과 객체 키 재귀 변환은 다른 문제입니다.
- 생성된 변수명은 예약어와 식별자 유효성 검사가 추가로 필요할 수 있습니다.
예시
| 변환 전 | 변환 후 |
|---|---|
| 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)
}온라인에서 변환 테스트
빠른 확인, batch, 약어 처리, 혼합 네이밍 입력을 브라우저 도구로 테스트하세요.
감지: 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변환은 브라우저에서 로컬로 처리되며 입력은 변환 서버로 전송되지 않습니다.