ToolAct工具行动

大小写转换工具

快速转换文本大小写,支持多种编程命名规范

输入内容
转换结果

选择转换方式

什么是大小写转换?

大小写转换是将文本中的字母字符转换为不同大小写形式的操作。除了基本的全部大写、全部小写、首字母大写外,还支持多种编程命名规范的转换,如驼峰命名(camelCase)、帕斯卡命名(PascalCase)、下划线命名(snake_case)等。这些转换功能对程序员和文案编辑人员非常有用,可以快速统一文本格式或转换变量命名风格。

使用说明

基本操作

  1. 在左侧输入框中输入或粘贴需要转换的文本
  2. 点击对应按钮选择转换模式
  3. 右侧自动展示转换结果
  4. 点击「复制」将结果复制到剪贴板

文本规则

  • 大小写转换最适合纯拉丁文本;姓名、缩写、代码标识符以及特定语言的字符可能需要人工核对。
  • 替换正式文案前,请确认标点、空格和词边界均已正确保留。

使用场景

在常见大小写风格之间转换文本将输入转换为大写、小写、首字母大写、句首大写、camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE、dot.case、path/case 或大小写互换。模式或输入变化时输出即时更新,方便将标题、标识符或段落并排测试不同风格。API、JSON、iPhone 等缩写词,德语名词、品牌名称以及 eszett 或带重音符号等特定语言字符,在自动小写转换后通常需要手动恢复。
为代码和 URL 准备标识符命名模式会规范化空格、连字符、下划线、点和斜线等分隔符,并在重建字符串之前拆分 camelCase 或 PascalCase 的边界。这使其适用于文件名、配置键、CSS 类名、路由路径、环境变量键和 SQL 列名。请对照你所用语言的保留字列表验证结果,因为 camelCase 或 snake_case 可能会意外地与 JavaScript 和 Java 中的 new、class 或 default 等类名冲突。
使用编辑器快捷键进行频繁转换当输入面板获得焦点时,键盘快捷键可以触发大写、小写、首字母大写、snake_case 和 kebab-case 转换,无需离开键盘操作。这在批量重命名标签、重构数据库字段列表或规范化 slug 时能加快重复性清理工作。注意标点、空白、混合语言文字或 iOS、markdown 等复合词可能会在错误的边界处被拆分。
从标题生成 slug 和路由片段将标题如 My First Blog Post 转换为 kebab-case 得到 my-first-blog-post,用作 URL slug。当源标题中已包含下划线、点或需要先拆分的 camelCase 边界时,调整大小写敏感度和分隔符处理方式。
保护缩写词和品牌名不被小写化对包含 JSON、API 或 iPhone 的段落执行小写转换,然后手动修复被转换破坏的缩写词。对于生产代码标识符,建议使用尊重现有字母序列的 snake_case 或 camelCase 模式,而非激进的全小写转换。

技术原理

大写和小写不是简单的 ASCII 交换。JavaScript 提供了 toUpperCase、toLowerCase 以及支持区域设置的 toLocaleUpperCase/toLocaleLowerCase。经典的土耳其语陷阱是 'I'.toLocaleLowerCase('tr-TR') 返回无点 'ı'(U+0131)而非 'i',而 'i'.toLocaleUpperCase('tr-TR') 返回带点 'İ'(U+0130)。德语 'ß' 在默认区域设置下大写为 'SS',但在 'de-DE-x-eszett' 下变为大写 eszett 'ẞ'(U+1E9E)。工具在默认区域设置下运行,除非用户主动选择,这符合大多数代码标识符的预期。 驼峰、帕斯卡、蛇形、短横线、常量、点分隔和路径命名都从将输入拆分为词元开始。词边界在空格、连字符、下划线、点、斜线以及任何小写到大写的转换处检测(因此 'userProfileID' 拆分为 ['user', 'Profile', 'ID'])。词元列表随后被小写化、按样式首字母大写化,并用目标分隔符连接:camelCase 和 PascalCase 用 ''、snake_case 用 '_'、kebab-case 用 '-'、CONSTANT_CASE 用 '_' 加全大写、dot.case 用 '.'、path/case 用 '/'。 句首大写仅在句末标点(.、!、?)加空格之后的第一个字母大写,而标题大写则将每个单词的首字母大写并将其余字母小写。Unicode 有专用的标题大小写码点,如双字符 'Dž'(U+01C5),它既不是小写的 'dž' 也不是大写的 'DŽ',标准的 String.prototype 方法无法生成它;完整的 Unicode 标题大小写需要专门的库。URL slug 生成需要额外的规范化处理 —— NFKD 加上去除组合标记 —— 将 'café' 转为 'cafe' 后再进行 kebab-case 连接。

  • 区域设置陷阱:'I'.toLocaleLowerCase('tr-TR') = 'ı';'i'.toLocaleUpperCase('tr-TR') = 'İ';德语 'ß' 默认大写为 'SS',在 de-DE-x-eszett 下为 'ẞ'
  • 词元拆分:在空格、'-'、'_'、'.'、'/' 以及小写到大写转换处拆分('userProfileID' -> ['user','Profile','ID'])
  • 样式组装:camelCase = 首词小写 + 其余首字母大写,连接符 '';PascalCase = 全部首字母大写,连接符 '';snake = '_';kebab = '-'
  • CONSTANT_CASE / SCREAMING_SNAKE:snake_case 经 toUpperCase 处理,常用于环境变量键名
  • 句首大写:在 [.!?] 加空格后的首字母大写;其余全部小写
  • Unicode 标题大小写:存在专用码点如 'Dž'(U+01C5),但 String.prototype 方法无法生成
  • Slug 生成流程:str.normalize('NFKD').replace(/\p{M}+/gu, '') 去除变音符号,使 'café' 变为 'cafe' 后再进行 kebab-case

示例

把 'hello world' 转成各种常见命名风格

输入:           hello world

UPPERCASE:       HELLO WORLD
lowercase:       hello world
Capitalize:      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
path/case:       hello/world

把 JavaScript 变量改成 Python 的 snake_case

输入: userProfileSettings
snake_case 输出:    user_profile_settings
CONSTANT_CASE:       USER_PROFILE_SETTINGS

# 在 JavaScript(camelCase)和 Python(snake_case)
# 之间移植代码时很有用。

把文章标题转成 URL slug

输入:        My First Blog Post: A Beginner's Guide!
kebab-case:   my-first-blog-post-a-beginners-guide

最终 URL:    https://blog.example.com/my-first-blog-post-a-beginners-guide

切换大小写做花式文本

输入:     Hello World
tOGGLE:    hELLO wORLD

输入:     ToolAct Online
tOGGLE:    tOOLaCT oNLINE

常见问题

支持哪些大小写风格?

UPPERCASE(全大写)、lowercase(全小写)、Title Case(每个单词首字母大写)、Sentence case(仅首字母大写)、camelCase(首词小写,其余首字母大写)、PascalCase(每个单词首字母大写)、snake_case、kebab-case、CONSTANT_CASE。所有风格实时转换。

Title Case 和 Sentence case 有什么区别?

Title Case 会把每个有意义的单词都大写:'The Quick Brown Fox'。Sentence case 只大写第一个单词和专有名词:'The quick brown fox'。Title Case 有不同流派——有些会跳过短词(a、an、the、of、in)——本工具通常采用 APA 或 AP 风格,请查看选项列表确认。

中日韩字符是怎么处理的?

中文、日文、韩文字符没有大小写概念,会原样保留。中日韩与拉丁字母混排时只改变拉丁部分。罗马字(日文的拉丁转写)、拼音(中文的拉丁转写)和韩文罗马化都按拉丁字母规则正常转换。

能处理带重音的字符吗?

可以——é → É、ñ → Ñ、ß → SS(按 Unicode 规则,德文 eszett 大写)。一些旧系统将 ß 映射为 SS;现代 Unicode 也允许 ẞ。本页使用 JavaScript 内置的 toLowerCase/toUpperCase,遵循 Unicode 大小写折叠规则。

为什么土耳其语的 I 表现奇怪?

土耳其语区分有点 i 和无点 ı——在土耳其语 locale 下,大写 I 的小写形式是 ı(无点),而非 i。JavaScript 默认的大小写转换不应用 locale 规则。如需正确处理土耳其语大小写,请在代码中使用 String.prototype.toLocaleLowerCase('tr')。

可以从 snake_case 反向转回 Title Case 吗?

可以。检测器能识别常见命名风格,并支持任意两种之间互转:snake_case → kebab-case、PascalCase → camelCase 等。PascalCase 中的连续大写缩写词(如 HTMLParser)经 snake_case 转换后有时无法完美回转——取决于工具是把连续大写视为一个词还是多个词。

我的文本会被上传吗?

不会。转换通过 JavaScript 字符串方法在浏览器中完成,粘贴的文本不会被传输。