大小写转换工具(kebab-case・camelCase・snake_case,免费)

免费在线一键批量互相转换 kebab-case、camelCase、PascalCase、snake_case 等主流命名规范。方便编程时改写变量名、文件名、环境变量名。

命名规则(大小写)的转换是什么

程序设计中经常需要为多个单字符串接而成的名称命名。其区隔方式有 camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE 等流派,该用哪一种依语言与用途而定。本工具会将输入的字符串拆解为单字,一次转换为所有主要命名规则并并列显示。

单字的区隔不仅依符号,也会由大写字母的位置来判定。像 XMLParser 这类大写连续的首字母缩写,也能正确拆为 XML 与 Parser。若混有日文或符号,则只会撷取英数字的部分,因此仅输入日文时结果会是空的。

大小写转换的使用方法

  1. 输入想转换的字符串 以哪一种命名规则书写都无妨。hello_world 与 helloWorld 会以相同方式解读。
  2. 选择目标格式 主要命名规则的转换结果会以一览呈现。请确认想使用的格式所在的那一行。
  3. 复制后使用 可用各行最右端的按钮复制到剪贴板,直接贴入编辑器即可。

用好本工具的小技巧

  • 像 XMLParser 这样的首字母缩略词(连续大写字母)也能正确拆分为 XML 和 Parser 后再转换。
  • 点击每行右侧的按钮即可立即复制到剪贴板。
  • 不同语言和场景所使用的命名规范也不同:JavaScript/Java 的变量名常用 camelCase,类名用 PascalCase,Python 的变量名和函数名用 snake_case,环境变量用 CONSTANT_CASE,URL 和 CSS 类名则多用 kebab-case。
  • 即使夹杂中文或其他符号,也只会提取其中的英数字单词进行转换(中文部分会被排除在转换结果之外)。

大小写转换的实用场景

把代码移植到其他语言

例如由 Python 改写为 JavaScript 时,可将 snake_case 的变数名一次改为 camelCase,避免手动输入的打字错误。

衔接 API 与代码的命名

JSON 的键为 snake_case 而代码端为 camelCase 的组合相当常见。可立即取得对应的名称。

建立环境变数名称

将设定项目的名称转换为 CONSTANT_CASE,即可直接作为环境变数使用。

决定 URL 或 CSS 类别名称

将功能名或元件名转换为 kebab-case,可用于路径或类别名称的命名。

命名规则的术语

camelCase
第一个单字以小写开头,其后各单字字首大写的写法。用于 JavaScript 或 Java 的变数名。
PascalCase
所有单字字首皆大写的写法。在许多语言中用于类别名或类型名。
snake_case
以底线串接单字并全部小写的写法。是 Python 变数名与函式名的标准。
kebab-case
以连字号串接单字的写法。多数语言无法将其用于识别字,因此用于 URL 或 CSS 类别名称。
CONSTANT_CASE
全部大写并以底线串接的写法。用于常数名或环境变数名。
首字母缩写
如 XML 或 HTML 这类将各词字首排列而成的词。由于大写连续,在单字区隔的判定上处理方式各异。

常见问题

可以。转换时只会提取并分割英数字单词,中文部分不会包含在结果中。如果输入内容全部是中文,则结果为空。

数字会被当作与英文字母相同的单词的一部分处理。例如 version2Update 会被拆分为 version2 和 Update。

不会。转换处理全部在浏览器内完成,输入内容不会以任何形式发送到服务器。
工具君

闲话 ― 为什么各编程语言的命名规范不同

snake_case 据说源自 20 世纪 70 年代的 C 语言社区。当时的终端和编辑器环境中,大小写字母有时并不容易区分,于是用下划线分隔单词的写法反而更受欢迎,逐渐成为一种惯例。这一传统后来被 Python 和 Ruby 强烈继承了下来,至今仍是它们代码风格的标志之一。

另一方面,camelCase 据说源于 20 世纪 80 年代的 Smalltalk,以及后来 Java 的设计。Java 的设计者们选择了比下划线更紧凑、书写起来也更快的 camelCase 作为标准风格,而这一做法后来又被 JavaScript 原封不动地继承了下去,一路影响到今天的前端开发习惯。

有意思的是,在大多数编程语言中,kebab-case 反而不能用作变量名,原因很简单——- 会与减法运算符冲突,编译器无法区分二者。正因如此,它主要活跃在 URL、CSS 类名、命令行参数等并非编程语言标识符的场合,倒也算是"各得其所"。