Ejemplo de JavaScript
Convertir snake_case a camelCase en JavaScript
Para snake_case predecible, divide por guiones bajos, deja el primer token en minúsculas y capitaliza los siguientes.
Código 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"Elimina guiones bajos al principio/final y trata separadores repetidos para evitar tokens vacíos.
Está pensado para snake_case real; acrónimos, guiones, espacios o PascalCase necesitan tokenización más general.
Casos límite a tener en cuenta
- Acrónimos como API/URL pueden requerir una política propia del proyecto.
- Entradas mixtas como user_profile-URL necesitan tokenización más amplia.
- Convertir una cadena no es lo mismo que renombrar claves de objeto recursivamente.
- Los nombres de variable generados pueden requerir validación de palabras reservadas.
Ejemplo
| Antes | Después |
|---|---|
| user_profile_image | userProfileImage |
| __user__profile__ | userProfile |
| api_response_url | apiResponseUrl |
| created_at | createdAt |
Código 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)
}Probar la conversión online
Usa el convertidor para comprobaciones rápidas, lotes, acrónimos o entradas con varias convenciones.
Detectado: snake_case
Salida camelCase
userProfileImageUrl
Todos los formatos de nombres
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/urlLa conversión ocurre localmente en tu navegador. Tu entrada no se envía a un servidor de conversión.