javascript - 正则表达式将驼峰大小写转换为普通句子,同时将一些转换为大写
问题描述
我正在尝试将驼峰式单词转换为普通句子文本。
例如 :
productId to Product Id
productSize to Product Size
snapshotId to Snapshot Id
问题是包含 Id 的字段,我想将它们转换为“ID”
productId : Product ID
snapshotId: Snapshot ID
我尝试了以下正则表达式:
(str.charAt(0).toUpperCase() + str.substring(1)).split(/(?=[A-Z])/).join(" ")
我该如何处理这里的 ID 案例?
感谢帮助。
解决方案
您可以拆分并映射检查 Id 的部分。
str = str.split(/(?=[A-Z])/)
.map(s => s === "Id" ? "ID" : s.charAt(0).toUpperCase() + s.substring(1)).join(" ");
[
"productId",
"productSize",
"snapshotId"
].forEach(str => {
str = str.split(/(?=[A-Z])/)
.map(s => s === "Id" ? "ID" : s.charAt(0).toUpperCase() + s.substring(1)).join(" ");
console.log(str);
});
推荐阅读
- node.js - Next.js - 错误构建目录在 EC2 上不可写
- command - 调整图像大小、旋转、换行和组合图像的 Imagemagick 命令
- go - 在 Helm 中替换没有空格的字符串中的值 - 命令中的意外未关闭操作
- ruby-on-rails - Upload a Rails project without gems like NodeJS project without modules
- fonts - Change font size of only bullet points in beamer_presentation r-markdown
- javascript - JS RegEx 用于查找页面中的行数,由换页符 \f 分隔
- node.js - 无法使用 webpack 为 spfx 解决方案加载 sp-loader
- python - python中的3D点云
- firebase - Flutter 使用 Stream 还是 Future?
- javascript - 将尚不存在的 vue 输入绑定到数据属性