如何转换文本大小写
命名约定很重要。无论您是在编写代码、创建文件名,还是格式化标题,使用正确的文本大小写可以使事情保持一致和专业。手动在大小写之间转换很乏味且容易出错,尤其是对于长文本或变量名。基于浏览器的转换器可以立即处理每种常见的大小写格式。
常见文本大小写及其使用场景
| 大小写 | 示例 | 常见用途 |
|---|---|---|
| 大写 | HELLO WORLD | 常量、缩略词、标题 |
| 小写 | hello world | CSS属性、电子邮件、随意文本 |
| 标题大小写 | Hello World | 标题、页眉、专有名词 |
| 句子大小写 | Hello world | 正文文本、描述 |
| camelCase | helloWorld | JavaScript/Java变量、函数 |
| PascalCase | HelloWorld | 类名、React组件 |
| snake_case | hello_world | Python、Ruby、数据库列 |
| SCREAMING_SNAKE_CASE | HELLO_WORLD | 常量、环境变量 |
| kebab-case | hello-world | URL、CSS类、文件名 |
| Train-Case | Hello-World | HTTP头(较旧),罕见 |
| dot.case | hello.world | 对象路径、命名空间配置 |
| path/case | hello/world | 文件路径、URL段 |
| COBOL-CASE | HELLO-WORLD | 遗留COBOL标识符,罕见 |
| Cocoa大小写 | helloWorld | Apple样式指南(与camelCase相同) |
如何转换文本大小写
- 粘贴您的文本:将任何文本输入转换器。它适用于单个单词、变量名、句子或整段。
- 选择一种大小写:点击您想要的格式。转换会立即应用。
- 复制结果:点击复制以获取转换后的文本用于您的代码、文档或文件名。
代码命名约定简史
早期编程语言对标识符长度有严格限制:FORTRAN(1957)允许6个字符;ALGOL(1958)允许有限字符。程序员必须积极缩写。因为标识符太短无法包含多个单词,所以不需要大小写约定。
当语言允许较长的标识符(C 1972、Pascal 1970)时,分隔单词成为一个问题。Pascal推广使用大写字母分隔单词:MyVariable。C历史上使用小写加下划线:my_variable。这种分歧一直持续:大多数C系列和Unix语言偏好snake_case(Python、Ruby、Rust默认、PostgreSQL列),而Java系列和Microsoft语言偏好camelCase(JavaScript、Java、C#、Swift、Kotlin)。
PascalCase从Smalltalk(1980年代)的类名出现,然后被C++(1985)、Java(1995)和C#(2000)采用。今天大多数语言对类型/类使用PascalCase,对实例/函数使用camelCase,无论单词分隔符的偏好如何。
kebab-case随着Web出现:CSS选择了连字符(background-color),URL也偏好它们。大多数现代Web语言(HTML、CSS、URL路径、JSON模式)对用户可见的标识符使用kebab-case。
最新的约定是用于常量和环境变量的SCREAMING_SNAKE_CASE:这是Unix shell的遗产,到2000年代跨越到大多数编程语言。
何时使用每种约定
实用指南:
- 大写在散文中:缩略词(NASA、HTML、CSS)、强调(很少;粗体通常更好)、指定的设计系统中的标题。
- 小写在散文中:URL、电子邮件地址、标签、休闲聊天。在代码中:很少,除了一些Lisp变体。
- 标题大小写:书名、文章标题、专有名词。不同的样式指南对哪些单词大写有不同的规则。
- 句子大小写:现代设计系统中正文、描述、UI标签的标准(Material Design、Apple HIG均偏好按钮使用句子大小写)。
- camelCase:JavaScript/TypeScript变量、Java/Swift方法名、大多数OO语言中的实例变量。
- PascalCase:类名、类型名、React/Vue组件名、枚举类型。
- snake_case:Python和Ruby变量/函数、数据库列名、GraphQL字段名(有时)、shell变量。
- SCREAMING_SNAKE_CASE:大多数语言中的常量、环境变量(DATABASE_URL、NODE_ENV)、YAML/JSON中的配置键。
- kebab-case:URL slug、CSS类名、HTML data-*属性、npm包名、静态站点生成器中的文件名。
- dot.case:代码中的对象属性路径、配置文件(Nginx、Spring Boot属性)、命名空间事件。
标题大小写规则
「标题大小写」听起来简单,但有样式指南的复杂性:
- APA样式:将4+字母的单词大写;无论长度如何,将所有名词、动词、形容词、副词大写。
- Chicago Manual of Style:将第一个/最后一个单词大写;将所有名词、动词、形容词、副词、代词大写;将冠词(a、an、the)、短介词、并列连词(and、but、or)小写。
- AP样式:将所有4+字母的单词大写;对介词有特定例外。
- MLA样式:类似于Chicago,但在介词处理上有微小差异。
「简单标题大小写」转换器将每个单词大写(从技术上讲,它不匹配任何主要样式指南)。大多数转换器提供「Title Case」作为快速估计,但标记结果以手动检查:
- 冠词(a、an、the)
- 连词(and、but、or、for、nor)
- 短介词(in、on、at、by、to、of)
- 缩略词(API、HTTP、CSS)
常见陷阱
- camelCase中的缩略词:
xmlHTTPRequest很别扭。Google的JavaScript样式指南建议将缩略词视为单词:xmlHttpRequest或XmlHttpRequest。Microsoft和Java样式指南将它们全部保持大写:XMLHttpRequest。选择一种约定。 - 标识符中的数字:
version2Point0vsversion2_0vsversion20。没有通用规则;取决于语言约定。 - 首字母大写的缩略词:「i18n」是camelCase,「I18n」是PascalCase,「I18N」是screaming。匹配您的上下文。
- 介词上的标题大小写:「Off The Record」对大多数编辑来说看起来不对;「Off the Record」遵循大多数样式指南。发布前验证。
- 数据库大小写约定不同:PostgreSQL和大多数SQL实现对未加引号的标识符不区分大小写,但对加引号的标识符区分大小写。如果实际列名是
mycolumn,SELECT myColumn FROM table可能会失败。 - 按OS的文件名大小写敏感性:macOS HFS+默认不区分大小写;APFS不区分大小写但保留大小写;Linux ext4区分大小写;Windows NTFS不区分大小写(但Windows上的Linux子系统区分大小写)。
MyFile.txt和myfile.txt可能是也可能不是同一文件。 - Unicode大小写依赖于区域:大写İ(土耳其有点I)vs I(英语)。一些
toUpperCase()实现在没有明确区域时会弄错。
提示
- 匹配您的语言约定:Python使用snake_case,JavaScript使用camelCase,CSS使用kebab-case。代码库内的一致性比个人偏好更重要。
- 支持Unicode:转换器处理重音字符、表情符号和CJK字符,因此适用于任何语言的文本。
- 检查标题大小写中的缩略词:大多数标题大小写转换器将每个单词大写,这可能将「API」变成「Api」。转换后检查缩略词。
- 使用句子大小写以提高可读性:对于面向用户的文本(如按钮标签和描述),句子大小写通常比标题大小写更易读。
- 配置您的linter:ESLint、Prettier、Pylint、RuboCop都可以自动强制执行命名约定。设置一次,让linter在保存时捕获大小写违规。
- 使用代码样式指南:Google、Airbnb、Microsoft、GitHub都为主要语言发布样式指南。为您的项目选择一个并坚持使用。
隐私和机密文本
大小写转换器完全在您的浏览器中运行。您粘贴的文本、中间转换和输出都保留在您的设备上。没有任何内容上传到服务器、记录或与任何人共享。
这很重要,因为您转换的字符串通常是机密的:专有代码库的变量名、内部API端点、文章标题草稿、禁运期客户面向副本、揭示产品结构的数据库列名。云大小写转换器在其请求日志中记录每次转换,并可能将其用于「改进」或分析。仅浏览器转换器具有零暴露,并且页面加载后可离线工作。
常见问题
camelCase 和 PascalCase 有什么区别?
camelCase 以小写字母开头,后续每个单词首字母大写(myVariableName)。PascalCase 每个单词都大写,包括第一个(MyVariableName)。在大多数语言中,camelCase 用于变量和函数,PascalCase 用于类和类型。
何时使用 snake_case 或 kebab-case?
snake_case 使用下划线,是 Python、Ruby 和数据库列名的标准。kebab-case 使用连字符,在 URL、CSS 类和文件名中很常见。根据您的语言或上下文要求使用。
CONSTANT_CASE 是什么?
CONSTANT_CASE(也称 SCREAMING_SNAKE_CASE)使用全大写字母,单词间用下划线。这是大多数语言中常量、环境变量和配置键的标准约定。
我的文本会发送到服务器吗?
不会。所有转换都在您的浏览器中进行。您的文本从不离开您的设备。