知办库

命名风格转换 — 驼峰 / 下划线 / 短横线互转

把变量名、文件名、接口字段在常见命名约定之间互相转换。支持拆分 camelCasesnake_casekebab-case、空格与连续大写缩写(如 HTTPServer)。纯前端运行。

它如何拆分单词

  1. 先按空格、下划线、短横线、点号切分。
  2. 再对每一段做驼峰切分:在小写转大写处断开(userNameuser + Name)。
  3. 连续大写缩写按“最后一个大写属于下一个词”处理(HTTPServerHTTP + ServerparseHTMLStringparse + HTML + String)。
  4. 数字与字母边界也视为切分点(utf8Decodeutf8 + Decode)。

切分结果取决于约定。英文缩写歧义无法 100% 自动判定(例如 IDCard 可能想表达 id + card)。若结果不符合预期,在输入里显式加上分隔符即可。

各风格对照

风格示例常见场景
camelCaseuserProfileImageJS / Java 变量与方法名
PascalCaseUserProfileImage类名、React 组件、C# 属性
snake_caseuser_profile_imagePython / Ruby 变量,SQL 列名
kebab-caseuser-profile-imageCSS 类名、URL slug、文件名
CONSTANT_CASEUSER_PROFILE_IMAGE常量、枚举成员
dot.caseuser.profile.image配置键、命名空间
Train-CaseUser-Profile-ImageHTTP 头、部分文件命名
Title CaseUser Profile Image标题、展示文案
Sentence caseUser profile image句子、说明文字

常见问题

为什么 URL slug 建议用 kebab-case?
搜索引擎对短横线作为词分隔符的识别最明确,下划线在某些场景会被当作词内连接符。因此 user-profileuser_profile 更利于分词。
中文输入会怎样?
中文不区分大小写,转换会原样保留中文字符并只处理分隔符。用于生成 slug 时建议先自行替换或去掉中文。
会不会改写我的原有缩写?
会把连续大写缩写整体当作一个词保留(HTTP 保持 HTTP,不会被变成 Http)。这是刻意设计,避免破坏常见缩写的可读性。
数据会上传吗?
不会。整个转换在浏览器内完成,页面不发起任何网络请求。