命名风格转换
在 camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE、Title Case、Sentence case 之间互转。
camelCasehelloWorldFromDevToolBox
PascalCaseHelloWorldFromDevToolBox
snake_casehello_world_from_dev_tool_box
kebab-casehello-world-from-dev-tool-box
CONSTANT_CASEHELLO_WORLD_FROM_DEV_TOOL_BOX
Title CaseHello World From Dev Tool Box
Sentence caseHello world from dev tool box
lowercasehello world from devtoolbox
UPPERCASEHELLO WORLD FROM DEVTOOLBOX
代码中的命名约定
命名约定因语言和生态而异。JavaScript 与 Java 用 camelCase 表示变量与函数、PascalCase 表示类与 React 组件。Python、Rust 偏爱 snake_case 表示变量与函数、PascalCase 表示类型。CSS、HTML 属性、URL slug 用 kebab-case。环境变量与常量在几乎所有生态中都是 CONSTANT_CASE。
手工切换命名风格容易出错 —— 尤其当源里有缩写或数字时。本工具按词边界(空白、各类分隔符、大小写过渡)把输入切成单词,再按目标风格拼回去。缩写在 PascalCase 输出中保留大写,在 camelCase 输出中按 lodash / change-case 等流行库的做法处理。
使用场景
- 把 Python API 返回的 snake_case 字段重命名为 TypeScript 习惯的 camelCase 后再赋值。
- 从可读标题生成 kebab-case 的 URL slug。
- 把 SQL CREATE TABLE 的列名转成 TypeScript interface 的键。
- 把 CONSTANT_CASE 的 feature flag 名翻成 sentence case 的 UI 文案。
- 批量重命名测试 fixture 让其符合项目约定。
最佳实践
- 为每一层(数据库 / API / UI)选一种约定并坚持,跨层时显式转换。
- PascalCase 中保留缩写大写(如 JSONParser)需要全代码库一致。
- 同一文件不要混用风格 —— 读者会从约定中推断含义。
- 生成 slug 时去除变音符并将长度限制在 60 个字符以内,更利于 SEO。
常见问题
怎么识别词边界?
按空白、连字符、下划线、点号以及小写字母到大写字母的过渡进行切分。
缩写会被怎么处理?
取决于目标风格。PascalCase 保留缩写大写;camelCase 在标识符开头时只把首词缩写小写。
数字会被当作单独的词吗?
默认与前一个词连在一起。如有自定义需求可调整分隔符。
支持非 ASCII 字母吗?
支持 —— 识别 Unicode 字母。但部分文字(如土耳其语带点 / 不带点 I)的大小写映射可能与默认 JavaScript locale 略有差异。