转换

medium 的一篇文章有列出几种常见命名方式转换的 JS 函数

CamelCase -> kebab-case

javascript 使用示例

string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase()

其中使用了正向前瞻 (positive lookahead),有一些 参考文章 可以学习一下。

kebab-case/snake_case -> CamelCase

const toCamelCase = str =>
  str
    .toLowerCase()
    .replace(/[^a-zA-Z0-9]+(.)/g, (m, char) => char.toUpperCase())