首页 > 解决方案 > 正则表达式将驼峰大小写转换为普通句子,同时将一些转换为大写

问题描述

我正在尝试将驼峰式单词转换为普通句子文本。

例如 :

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 案例?

感谢帮助。

标签: javascriptregexecmascript-6

解决方案


您可以拆分并映射检查 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);
});


推荐阅读