Menu

大小写转换器

在 camelCase、snake_case、kebab-case 等格式之间转换文本。

作者 Nethanel Bar, Co-founder & CEO

最后更新

准备好真正学会编程了吗?

Coddy 让你在浏览器里编写真实代码来学习:互动课程、即时反馈,卡住时还有 AI 帮忙。

大小写转换器是什么?

大小写转换器能把一个短语或标识符改写成所有常用的命名风格:camelCase(小驼峰)、PascalCase(大驼峰)、snake_case(下划线)、kebab-case(短横线)、CONSTANT_CASE、Title Case、Sentence case 等等。开发者会经常用到它:重构变量名、生成数据库列名、按照风格指南编写 API 字段名,以及把用户输入的文本转成 URL slug。

不同的技术生态偏好不同的命名风格。JavaScript 和 Java 喜欢 camelCase;Python 和 Ruby 喜欢 snake_case;CSS 类名和 URL 用 kebab-case;环境变量和常量用 CONSTANT_CASE。有了大小写转换器,你不必在脑子里逐个字符地改写,就能把短语转换成正确的风格。

难点不在改写,而在分词。大小写转换器必须先把 XMLHttpRequest、iOSDevice 或 read_HTML5Tags 这样的混合输入切分成正确的单词,再按所选风格重新拼接。聪明的分词器能妥善处理缩写词(XML、iOS)和数字。

转换大小写时你会学到什么

  • 每个语言社区都有自己偏好的风格。请遵循你所在代码库的约定。
  • 分词会先按大写字母、分隔符(_ - .)和数字边界切分混合输入,然后再重新拼接。
  • 缩写词会让大小写转换产生歧义:XMLParser 转换回来应该是 xmlParser 还是 xMLParser?选择你的代码库采用的约定,并保持一致。
  • URL slug 需要使用小写的 kebab-case,去掉重音符号(café → cafe),并只使用有限的字符(字母、数字、连字符)。

如何一步步转换大小写

  1. 粘贴文本

    放入一个短语、一个标识符或一整个列表都可以。混合输入(camelCase、snake_case、空格)也没问题。

  2. 一次查看所有变体

    转换器会把输入改写成 10 多种格式。选择你的代码库使用的那一种。

  3. 调整特殊情况

    如果你的风格指南有特定规则,可以切换对缩写词、数字和特殊字符的处理方式。

  4. 点击复制

    点击任意变体,把它复制到剪贴板。跨文件重构或填写 OpenAPI 规范时很有用。

命名风格速查表

同一个短语在最常见的命名约定下分别是什么样子。

风格示例使用场景
camelCaseuserNameJavaScript 变量、Java 方法
PascalCaseUserName大多数语言中的类名、React 组件
snake_caseuser_namePython、Ruby、数据库列名
SCREAMING_SNAKE_CASEUSER_NAME常量、环境变量
kebab-caseuser-nameURL、CSS 类名、命令行参数
Title CaseUser Name标题、标签
Sentence caseUser name界面文案、正文
Train-CaseUser-NameHTTP 请求头(X-Request-Id)
dot.caseuser.name配置键、带命名空间的设置
flatcaseusername域名、包名 slug

可以试试的大小写转换示例

转换一个短语

输入

user profile photo

各种变体

camelCase: userProfilePhoto · PascalCase: UserProfilePhoto · snake_case: user_profile_photo · kebab-case: user-profile-photo · CONSTANT_CASE: USER_PROFILE_PHOTO

同样的单词,五种风格。选择和你正在编辑的文件一致的那一种。

把 JS 变量重构为 Python 风格

JavaScript
const accessTokenExpiresAt = ...;
Python
access_token_expires_at = ...

大多数团队在领域模型中保留一个规范名称,在不同语言或不同 API 层之间的边界上再进行转换。

把标题转换成 URL slug

标题

10 Best Practices for REST APIs

Slug

10-best-practices-for-rest-apis

slug 就是 kebab-case 加上全小写,并且只包含安全字符。它们既可以用作 URL 路径段,也可以用作 CSS 类名。

大小写转换的常见错误

  • 在同一个文件或同一层中混用多种风格(同一个模块里既有 userName 又有 user_name)。选定一种风格,并用 linter 强制执行。
  • 缩写词的大小写不一致(XmlParser 和 XMLParser)。每个代码库定一次规则,然后坚持下去。
  • 忘了数据库标识符有时会被统一转换大小写:userName 和 username 在 PostgreSQL 中可能是同一列,在 MySQL 中却可能不同。
  • 生成 URL slug 时没有规范化重音字符、去掉符号。slug 应该只包含 ASCII 字母、数字和连字符。
  • 手动转换长列表的大小写。用转换器(或一行 lodash.snakeCase())更快,也更不容易出错。

大小写转换器常见问题

camelCase 是什么?
camelCase(小驼峰命名)把除第一个单词以外的每个单词首字母大写,并且不用分隔符直接连接(accessTokenExpiresAt)。它是 JavaScript 和 Java 中变量和方法最主流的命名风格。
snake_case 是什么?
snake_case(下划线命名)把每个单词都转成小写,并用下划线连接(access_token_expires_at)。它是 Python、Ruby 以及大多数关系型数据库列名的惯用写法。
PascalCase 和 camelCase 有什么区别?
两者都把后续每个单词的首字母大写。区别在于第一个字母:PascalCase 大写(UserProfile),camelCase 不大写(userProfile)。在大多数技术生态中,PascalCase 专门用于类名和 React 组件。
如何把文本转换成 URL 安全的 slug?
转成小写,把空格和下划线替换成连字符,去掉重音符号(é → e),再删除字母、数字和连字符以外的字符。大多数大小写转换器都提供 slug 模式,一步完成所有这些操作。
我的项目应该用 camelCase 还是 snake_case?

跟随语言的习惯:JavaScript、Java、Swift 用 camelCase;Python、Ruby、Rust 用 snake_case。在同一个代码库中,保持一致比具体选哪种更重要,linter(ESLint、Pylint、Rubocop)可以帮你强制执行。

了解更多

其他开发者工具

Coddy 编程语言插图

和 Coddy 一起学编程

开始