HandyTools Hub
← 返回工具列表

大小写转换

即时在不同大小写格式之间转换文本

大小写选项

大小写转换器能把文本改写成十种大小写风格,从全大写的标题到程序员熟悉的 camelCase 标识符。粘贴一个标题、一个变量名或整篇文档,点击一种格式即可完成转换。它让写作者不必重敲标题,也让开发者不用手动调整命名约定。

使用方法

在输入框中键入或粘贴文本,然后点击十个格式按钮中的任意一个。结果立刻出现在下方的只读框里,复制按钮会把它送进剪贴板。清除按钮同时清空两个框。这里没有提交步骤,也不会边打字边转换;选定格式时才执行转换,你可以把结果复制回输入框,连续叠加多种格式。

工具接受多行内容,不同格式按钮会根据风格保留、合并或替换换行,详见下文。

十种格式及适用场景

格式示例典型用途
UPPER CASEHELLO WORLD标题、强调、正文里的常量
lower casehello world把杂乱的输入统一化
Title CaseHello World文章与章节标题
Sentence caseHello world现代风格指南与行文
camelCasehelloWorldJavaScript 变量与函数
PascalCaseHelloWorld类与 React 组件
snake_casehello_worldPython、SQL 表名与列名
kebab-casehello-worldURL、CSS 类名、npm 包名
CONSTANT_CASEHELLO_WORLD环境变量与常量
dot.casehello.world某些配置与属性文件

实操示例:同一个短语的十种输出

输入:Hello World

  • UPPER CASE:HELLO WORLD
  • lower case:hello world
  • Title Case:Hello World
  • Sentence case:Hello world
  • camelCase:helloWorld
  • PascalCase:HelloWorld
  • snake_case:hello_world
  • kebab-case:hello-world
  • CONSTANT_CASE:HELLO_WORLD
  • dot.case:hello.world

输入 userName 会暴露不对称的行为。camelCase 得到 username,PascalCase 得到 Username;而 snake_case 得到 user_name,kebab-case 得到 user-name,CONSTANT_CASE 得到 USER_NAME,dot.case 得到 user.name。前两个丢弃了驼峰隆起,后四个读出了它。

正文格式:Title Case 与 Sentence case

Sentence case 先把整串字符转小写,再把开头以及句末标点之后的第一个字母大写。这让行文结果可预测,但会破坏缩写和专有名词。Title Case 使用单词边界规则,把每个单词的首字母大写,其余字母维持输入原样。

因为 Title Case 不规范化单词剩余部分,混合大小写的输入会原样穿透。the QUICK brown Fox 会变成 The QUICK Brown Fox。想让每个单词都是干净的标题形式,先转全小写,再转 Title Case。

Sentence case 有类似的局限。它只把整段输入的第一个单词、以及句号、感叹号、问号之后的单词视为句子开头。换行不算句子边界,所以第二行的首词会保持小写,除非它紧跟在终止符之后。粘贴一组句子时,你可能需要手动把每行首词大写。

多行文本与列表

基于分隔符的格式把换行当作分隔符。把两行转成 snake_case 会得到一行、中间以下划线相连,kebab-case、CONSTANT_CASE 和 dot.case 同理。camelCase 和 PascalCase 也会合并行,因为空白和换行都是边界,会转成下一个单词的首字母大写。若需要保留列表结构,请逐行转换,或使用 Title Case 与 Sentence case,它们不会改动换行。

逐步构建标识符

假设界面上有一个标签 User profile settings,你需要从同一组词得到几种命名约定。

  • snake_case:user_profile_settings,用于数据库列或 Python 变量。
  • kebab-case:user-profile-settings,用于形如 /settings/user-profile-settings 的路由。
  • camelCase:userProfileSettings,用于 JavaScript 属性。
  • CONSTANT_CASE:USER_PROFILE_SETTINGS,用于环境变量。
  • PascalCase:UserProfileSettings,用于类或组件名。

一个可靠的习惯是:粘贴标签,先点 lower case 压平已有的大小写,再点目标格式,最后复制结果。若短语里含标点或所有格,务必检查输出,因为每个非字母数字字符都会变成分隔符,可能在意想不到的地方合并或切开单词。

一个提醒:先转小写也会抹掉缩写的大小写,API URL v2 会变成 api_url_v2,而不是 API_URL_V2。缩写重要时请手动还原。

常见错误

误以为 camelCase 能拆开已有的驼峰,其实它做不到;以为 Title Case 会把单词剩余字母也转小写;忘记 Sentence case 会压平缩写和产品名;把多行列表转成 snake_case 后才发现各行被合并;把标点当作有意义的内容——分隔符风格会替换每个非字母数字字符,所以 foo.bar 和 foo-bar 在 snake_case 下都变成 foo_bar。另一个陷阱是期待缩写被自动还原:工具没有词典,全小写的 api gateway 只会变成 Api Gateway,而不是 API Gateway。给自己维护一份总要大写的术语清单,转换后逐一修正。

相关工具

常见问题

为什么把 userName 转成 camelCase 会得到 username?

camelCase 和 PascalCase 会先把整段输入转成小写,再把非字母数字字符当作单词边界。已有的驼峰隆起不会被拆开,userName 里没有分隔符可保留,于是塌缩成 username。若想拆解已有的驼峰,请改用 snake_case、kebab-case、CONSTANT_CASE 或 dot.case。

Title Case 会把每个单词剩下的字母也转成小写吗?

不会。Title Case 只把每个单词的首字母大写,其余字母保持原样,所以 hELLO wORLD 会变成 HELLO WORLD,而不是 Hello World。想要干净的标题形式,先转一次全小写再用 Title Case。

转成 snake_case 时换行会怎样?

换行属于非字母数字字符,会被分隔符替换并消失。两行输入会合并成用下划线连接的一整串 snake_case。Title Case 和 Sentence case 只改字母,因此会保留换行。

工具如何处理标识符里的数字?

数字被当作普通单词字符。user2name 在 camelCase 和 snake_case 转换后仍是 user2name,因为数字不构成单词边界。若需要在数字前加分隔符,得自己补上,或者换一种源格式。

哪些格式能正确拆开已有的驼峰单词?

snake_case、kebab-case、CONSTANT_CASE 和 dot.case 都会识别「小写字母后跟大写字母」并插入分隔符,所以 userName 会变成 user_name、user-name、USER_NAME 或 user.name。camelCase 和 PascalCase 不会这样做。

Sentence case 如何处理缩写和多个句子?

Sentence case 先整体转小写,再把字符串首字母、以及句号、感叹号、问号之后的第一个字母大写。缩写在这个过程中也会被转小写,所以 HTTP server 会变成 Http server,除非你事后手动修正。

由 HandyTools Hub 团队审校 · 最后更新