String Case Conversion: camelCase, snake_case, kebab-case
Convert identifiers between camelCase, snake_case and kebab-case with word-boundary splitting, input validation and predictable output.
Code
function splitWords(input) {
if (typeof input !== "string") throw new TypeError("input must be a string");
return input
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
.replace(/[_-]+/g, " ")
.trim()
.split(/\s+/)
.filter(Boolean)
.map((word) => word.toLowerCase());
}
export function toCamelCase(input) {
return splitWords(input)
.map((word, index) => (index === 0 ? word : word[0].toUpperCase() + word.slice(1)))
.join("");
}
export function toSnakeCase(input) {
return splitWords(input).join("_");
}
export function toKebabCase(input) {
return splitWords(input).join("-");
}Report a problem with this exampleOpens a pre-filled issue on GitHub.