大小写转换工具
快速转换文本大小写,支持多种编程命名规范
选择转换方式
什么是大小写转换?
大小写转换是将文本中的字母字符转换为不同大小写形式的操作。除了基本的全部大写、全部小写、首字母大写外,还支持多种编程命名规范的转换,如驼峰命名(camelCase)、帕斯卡命名(PascalCase)、下划线命名(snake_case)等。这些转换功能对程序员和文案编辑人员非常有用,可以快速统一文本格式或转换变量命名风格。
使用说明
基本操作
- 在左侧输入框中输入或粘贴需要转换的文本
- 点击对应按钮选择转换模式
- 右侧自动展示转换结果
- 点击「复制」将结果复制到剪贴板
文本规则
- 大小写转换最适合纯拉丁文本;姓名、缩写、代码标识符以及特定语言的字符可能需要人工核对。
- 替换正式文案前,请确认标点、空格和词边界均已正确保留。
使用场景
技术原理
大写和小写不是简单的 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 字符串方法在浏览器中完成,粘贴的文本不会被传输。