piapia123
zh

大小写与命名风格

文本处理

所有处理都在浏览器本地完成,数据不上传服务器

输入
输出

把标识符从一种写法换成另一种,难点从来不在连接符,而在拆词:拿到 fooBarBaz、foo_bar_baz 或 FOO_BAR,得先认出它们都是 foo、bar、baz 三个词。连续大写尤其容易拆错 —— HTTPServer 应该拆成 HTTP + Server,而不是四个字母,也不是整个当成一个词。这个工具按这条规则拆词,再重组成八种风格中的任意一种。

功能

  • 八种风格互转:camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE、标题化、全大写、全小写
  • 拆词同时认得 fooBarBaz、foo_bar_baz、foo-bar-baz、FOO_BAR 以及四者混写的输入
  • 连续大写按词拆开:HTTPServer 拆成 HTTP + Server,XMLHttpRequest 拆成 XML + Http + Request
  • 字母与数字的边界也断开:utf8String 拆成 utf8 + String,MP3Player 拆成 MP3 + Player
  • 逐行独立转换,一列标识符粘进来行结构不会丢
  • 输入即出结果,不需要点按钮

使用方法

  1. 选择目标风格
  2. 把标识符粘贴进输入框(每行一个也支持)
  3. 结果实时出现,点「复制」取走

常见问题

连续大写是怎么拆的?
规则是「连续大写 + 大写后跟小写」时,在最后一个大写字母前断开:HTTPServer 拆成 HTTP 与 Server,XMLHttpRequest 拆成 XML、Http、Request。少了这条规则,大量实现会把 XMLHttpRequest 拆成 XMLHttp + Request。
中文会被怎么处理?
中文不参与拆词,会原样留在词里。所以「用户ID」转成 CONSTANT_CASE 得到的是「用户ID」,而不是被切成两半。
为什么 __init__ 转成 camelCase 变成了 init?
下划线是分隔符,两侧的空词会被丢掉,于是只剩 init 一个词,再按规则首字母小写。如果这个结果不合预期,说明该标识符依赖下划线表达语义,转换前需要确认。
全大写和全小写为什么不吃掉多余空格?
这两者作用于整行字符,不拆词。拆词再拼会把行首缩进和行内多余空格一并压掉,那不是它们该做的事。

相关工具