将 CSV 表头转为 SQL 标识符
从电子表格导出的表头如 First Name、Date Of Birth、Customer ID,PostgreSQL 要求格式为 first_name、date_of_birth、customer_id。粘贴表头行,点击下划线命名,即可获得可直接用于 CREATE TABLE 语句的标识符,无需加引号。
粘贴文本,点击样式,复制结果。九种命名风格,完整 Unicode 支持,数据不离开浏览器。
这是一款免费的浏览器工具,可将文本在九种格式之间转换:大写(UPPERCASE)、小写(lowercase)、首字母大写(Title Case)、句首大写(Sentence case)、下划线命名(snake_case)、驼峰命名(camelCase)、帕斯卡命名(PascalCase)、短横线命名(kebab-case)和常量命名(CONSTANT_CASE)。粘贴一次,点击所需格式,复制结果,所有操作均在本地完成。
可以把它看作 Excel 的 UPPER、LOWER、PROPER 函数,加上 Microsoft Word 的"更改大小写"菜单,再加上开发者通常用 lodash 或 npm 包 change-case 实现的编程命名风格——全在一个界面,无需安装。
底层转换使用 String.prototype.toLowerCase、toUpperCase 以及 toLocaleLowerCase / toLocaleUpperCase 进行语言感知映射(土耳其语带点 İ、德语 ß、希腊语词尾 sigma)。标识符风格会先按词边界(_、-、空格及大小写切换处)分词,再按目标格式重新组合。
其中两种是纯字母大小写变换。大写(UPPERCASE)调用 String.prototype.toLocaleUpperCase,小写(lowercase)调用 toLocaleLowerCase,均使用浏览器当前语言环境。语言感知版本很重要:MDN 关于 toLocaleUpperCase 的参考文档记录了土耳其语边界情况:在 tr-TR 环境下,小写 i 变为 İ(带点),大写 I 变为 ı(不带点)。不带语言环境的版本在处理土耳其语时会出错。
首字母大写(Title Case)和句首大写(Sentence case)需要更多处理。句首大写将全文转为小写,再将每个句子(以 .、!、? 分隔)的首字母大写。首字母大写则对每个词首字母大写,但冠词、介词、连词(如 a、an、the、and、or、of、in 等)保持小写;标题的首词和末词始终大写。
五种标识符风格(snake_case、camelCase、PascalCase、kebab-case、CONSTANT_CASE)共用同一个分词器:按下划线、连字符、空格、句点或大小写切换处分词(如 userProfileName 被拆为 user、profile、name),每个词转为小写后再按目标格式拼接。与 npm 包 change-case 的处理方式一致。
单一面板,一键操作,即时结果。无需注册,无需上传。
将文本粘贴到输入框中。可以是一个句子、一列 CSV 表头、一个标识符,或多行段落。点击"示例"按钮可填入示例文本,方便快速预览各种转换效果。
从九种格式中选择:大写(UPPERCASE)、小写(lowercase)、首字母大写(Title Case)、句首大写(Sentence case)、下划线命名(snake_case)、驼峰命名(camelCase)、帕斯卡命名(PascalCase)、短横线命名(kebab-case)或常量命名(CONSTANT_CASE)。结果立即显示在输出框中,原始输入保留不变,可随时切换其他格式。
点击复制将转换后的文本放入剪贴板,或点击下载保存为 .txt 文件。两项操作均在本地执行,不会上传任何数据。
从电子表格导出的表头如 First Name、Date Of Birth、Customer ID,PostgreSQL 要求格式为 first_name、date_of_birth、customer_id。粘贴表头行,点击下划线命名,即可获得可直接用于 CREATE TABLE 语句的标识符,无需加引号。
博客标题"Why We Switched from MongoDB to Postgres"转为短横线命名后变为 why-we-switched-from-mongodb-to-postgres,符合 Google URL 结构建议。标点被移除,空格变为连字符,大写字母被规范化。粘贴标题,点击短横线命名,粘贴到 CMS 即可。
将 Python 后端返回的 user_profile_name、created_at 转换为 TypeScript 前端偏好的 userProfileName、createdAt。粘贴下划线命名的标识符,点击驼峰命名,分词器会正确处理下划线边界。反向转换同样适用。
旧版 Oracle 数据库的标识符采用常量命名:USER_PROFILE_NAME、ORDER_LINE_ITEM_ID,而 PostgreSQL 的惯例是小写下划线命名。粘贴列名列表,点击下划线命名,即可获得 PostgreSQL 友好的格式;分词器会正确保留多词标识符的分隔位置。
收集了一批大小写混乱的标题:"the great gatsby"、"TO KILL A MOCKINGBIRD"、"Of mice And men"。粘贴后点击首字母大写,即可获得规范的标题格式,冠词和短介词保持小写(如"To Kill a Mockingbird")。比在 Word 的"更改大小写"菜单逐行操作快得多。
有人在支持工单中用全大写回复。粘贴消息,点击句首大写,文本立即变得可读:每个句子首字母大写,其余小写。点击复制,用更友好的格式回复即可。
九种格式的简明对照表,附带值得注意的 Unicode 边界情况。示例以 <code>userProfileName</code> 或"the quick brown fox"为输入。
| Topic | What this tool does |
|---|---|
| UPPERCASE(大写) | 每个字母均大写。USERPROFILENAME,THE QUICK BROWN FOX。基于 String.prototype.toLocaleUpperCase。常见于 SQL 关键字、CSS text-transform: uppercase 和环境变量的 YAML 惯例。 |
| lowercase(小写) | 每个字母均小写。userprofilename,the quick brown fox。基于 String.prototype.toLocaleLowerCase。用于电子邮件地址、主机名及不区分大小写的搜索键。 |
| Title Case(首字母大写) | 每个实词首字母大写,冠词和短介词保持小写。"The Quick Brown Fox Jumps Over the Lazy Dog"。标题首词和末词始终大写。AP 和 Chicago 风格对五字母以上介词的处理存在分歧。 |
| Sentence case(句首大写) | 每个句子首字母大写,其余小写。"The quick brown fox jumps over the lazy dog."以 .、!、? 分句。适合清理全大写文本或规范大小写混乱的内容。 |
| snake_case(下划线命名) | 词语以下划线连接,全部小写。user_profile_name。Python 函数和变量的命名惯例(PEP 8)、PostgreSQL 标识符惯例,Ruby、Rust 和 SQL 标识符中也很常见。 |
| camelCase(驼峰命名) | 词语无分隔符拼接,首词小写,后续词首字母大写。userProfileName。JavaScript 和 Java 变量、方法的命名惯例;大多数 JS 原生 API 的 JSON 对象键也采用此格式。 |
| PascalCase(帕斯卡命名) | 词语无分隔符拼接,每个词(含首词)均大写。UserProfileName。Java、C#、Python、Rust 和 TypeScript 类名的命名惯例,有时也称 UpperCamelCase。 |
| kebab-case(短横线命名) | 词语以连字符连接,全部小写。user-profile-name。CSS 选择器和属性的命名惯例;Google 推荐的 SEO URL slug 格式;HTML 属性规范惯例(DOM 属性以驼峰命名暴露)。 |
| CONSTANT_CASE(常量命名) | 词语以下划线连接,全部大写。USER_PROFILE_NAME。C、Java 和 JavaScript 编译期常量的命名惯例;环境变量(DATABASE_URL、NODE_ENV)及 SQL 关键字的常见格式。 |
| Unicode 边界情况 | 土耳其语带点/不带点 I(i ↔ İ,I ↔ ı);德语 ß 大写变为 SS;希腊语词尾 sigma ς 仅出现在词末。处理这些字符时务必使用语言感知方法。参见 维基百科:字母大小写及 Snake case / Camel case 了解标识符命名历史。 |
支持。大写和小写转换使用 String.prototype.toLocaleUpperCase 和 toLocaleLowerCase,并传入浏览器当前语言环境。在土耳其语环境下,i 变为 İ(带点),I 变为 ı(不带点),符合 Unicode Technical Standard #21 的规定。德语 ß 小写时保持不变,大写时变为 SS。希腊语词尾 sigma ς 也能正确处理。
首字母大写(Title Case)将冠词、介词和连词保持小写:a、an、the、and、or、but、nor、for、of、in、on、at、to、by、as、vs。标题的首词和末词始终大写。AP 和 Chicago 风格手册在边界情况上存在分歧(Chicago 对五个字母以上的介词大写,AP 不大写);本工具采用较短的 AP 近似列表,对混合输入效果最一致。
两者都将词语无分隔符拼接,区别在于首词的大小写。驼峰命名首词小写:userProfileName;帕斯卡命名每个词(含首词)均大写:UserProfileName。两种命名风格的使用场景取决于编程语言:Java 方法和变量用驼峰命名,类名用帕斯卡命名;Python 的 PEP 8 函数用下划线命名,类用帕斯卡命名;Google JavaScript 风格指南除类名外均用驼峰命名。
可以。五种标识符风格(下划线命名、驼峰命名、帕斯卡命名、短横线命名、常量命名)共用同一个分词器,按下划线、连字符、空格、句点及大小写切换处分词。因此 userProfileName、user_profile_name、user-profile-name、USER_PROFILE_NAME 都会被拆成相同的三个词,并能在五种风格之间无损转换,与 npm 包 change-case 及 lodash 的 _.kebabCase 等函数行为一致。
支持。转换使用语言感知的字符串方法,可正确处理重音拉丁字符(é、ñ、ü)、希腊语、西里尔字母、土耳其语带点/不带点 I、德语 ß 及大多数其他书写系统。请注意大小写折叠(用于相等比较,如 String.prototype.normalize + 小写化)与大小写映射(用于显示)的区别:本工具执行的是大小写映射。若需跨语言的相等比较,建议使用带 { sensitivity: 'base' } 选项的 localeCompare。
几 MB 以内均可流畅处理,速度远低于一秒。超过 10 MB 后浏览器可能会有所感知,瓶颈在于重新渲染长字符串的输出面板,而非转换本身。对于更大的文件,建议使用命令行工具:bash 中的 tr '[:upper:]' '[:lower:]'、Python 的 str.upper() / str.lower() / str.title(),或仅用于展示时的 CSS text-transform。
完全免费,无需注册。没有账户、没有试用期、没有每日转换量限制。所有操作均以标准 JavaScript 在浏览器中运行,页面加载完成后断网也能继续使用。粘贴文本,点击格式,复制结果——所有功能均可直接使用,无需登录,也不存在付费计划。
Excel 需要在辅助列中输入 =UPPER(A1)、=LOWER(A1)、=PROPER(A1) 等公式,然后再粘贴值;本工具只需粘贴一次、点击即可。Word 的更改大小写(Shift+F3)仅支持字母大小写格式,不支持下划线命名、驼峰命名或短横线命名等编程命名风格,且不提供任何标识符格式。此外,本工具不会上传您粘贴的任何内容,所有处理均在本地完成。
共九种。四种字母格式:大写(UPPERCASE)、小写(lowercase)、首字母大写(Title Case)、句首大写(Sentence case)。五种编程命名格式:snake_case(下划线命名)、camelCase(驼峰命名)、PascalCase(帕斯卡命名)、kebab-case(短横线命名)、CONSTANT_CASE(常量命名)。五种标识符格式共用同一分词器,可在任意两种之间无损转换。每次转换后原始输入保留不变,可随时切换其他格式。
不会上传任何内容。每次转换均使用 JavaScript 内置的标准 String 方法在浏览器中本地运行,文本从不经过服务器。我们不记录、不存储、不传输您的任何文本。您可以粘贴客户名单、内部数据或未发布产品名称,关闭标签页后不留任何痕迹。如需验证:打开浏览器开发者工具,切换到 Network 面板,点击格式按钮,观察是否有任何网络请求——结果是没有。
两者均支持。整个工具在客户端运行,页面加载后断网仍可正常使用——开启飞行模式,格式按钮依然有效。在手机上,布局会自动调整,输入和输出上下排列,按钮尺寸适合触控操作。复制和下载功能在移动端同样有效,方便在转发全大写消息前快速修正格式。
您的文本始终留在浏览器中。每次转换均使用 JavaScript String 原型内置的标准 String 方法在本地运行,不分析输入内容,不记录日志,不向服务器发送任何请求。我们遵循的 Unicode 规范来自 Unicode Technical Standard #21(大小写映射),与各大浏览器引擎所实现的标准相同。