大小写与命名风格
文本处理所有处理都在浏览器本地完成,数据不上传服务器
输入
输出
把标识符从一种写法换成另一种,难点从来不在连接符,而在拆词:拿到 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
- 逐行独立转换,一列标识符粘进来行结构不会丢
- 输入即出结果,不需要点按钮
使用方法
- 选择目标风格
- 把标识符粘贴进输入框(每行一个也支持)
- 结果实时出现,点「复制」取走
常见问题
- 连续大写是怎么拆的?
- 规则是「连续大写 + 大写后跟小写」时,在最后一个大写字母前断开:HTTPServer 拆成 HTTP 与 Server,XMLHttpRequest 拆成 XML、Http、Request。少了这条规则,大量实现会把 XMLHttpRequest 拆成 XMLHttp + Request。
- 中文会被怎么处理?
- 中文不参与拆词,会原样留在词里。所以「用户ID」转成 CONSTANT_CASE 得到的是「用户ID」,而不是被切成两半。
- 为什么 __init__ 转成 camelCase 变成了 init?
- 下划线是分隔符,两侧的空词会被丢掉,于是只剩 init 一个词,再按规则首字母小写。如果这个结果不合预期,说明该标识符依赖下划线表达语义,转换前需要确认。
- 全大写和全小写为什么不吃掉多余空格?
- 这两者作用于整行字符,不拆词。拆词再拼会把行首缩进和行内多余空格一并压掉,那不是它们该做的事。
相关工具
文本清洗
文本处理清洗从日志或表格里复制出来的一列内容:去重行、排序、去空行、去首尾空白、去行号、合并多空格,规则逐条开关。粘贴的内容只在本机处理。
字数统计
文本处理中英混排的文本到底有多长?中文按字、英文按词分开统计,再给出字符数、行数、字节数与阅读时长。全部在浏览器本地完成,不上传。
文本对比
文本处理把两份文本逐行对比,高亮标出新增、删除与未改动的行,改动按最小差异对齐,而不是整段标成变了。全部在浏览器本地完成,内容不上传。
简繁转换
文本处理在简体与繁体之间互转中文,常用词整词替换,其余字取最常见写法,因此个别字词仍需人工核对。全部在浏览器本地完成,不上传。
正则测试
文本处理在浏览器里调试正则:匹配实时高亮、捕获组连名字一起列出、替换结果即时预览,并挡住灾难性回溯。文本与正则都在本机处理,不上传。
Markdown 预览
文本处理左栏写 Markdown、右栏实时渲染;粘进来的 HTML 只会当文本显示,图片也不会向外发请求。全部在浏览器本地完成,内容不上传。