JavaScript中如何将air-quality-indoor还原为Air Quality - Indoor?
如何将格式化后的字符串还原为原始格式?
问题背景
原始字符串为 Air Quality - Indoor,通过以下代码转换为小写连字符格式的 air-quality-indoor:
var str = "Air Quality - Indoor"; var str2 = str.replace(/-/g, '').replace(/\s+/g, '-').toLowerCase(); // 输出:air-quality-indoor
还原难点
原转换过程中丢失了关键信息:
- 原字符串中的
-被直接删除,后续所有空格(包括原-两侧的空格)被统一替换为-,导致无法区分格式化后-对应的是原空格还是原-的位置; - 所有字母被转为小写,丢失了原单词的首字母大写格式。
针对性还原方案(已知原格式结构)
如果明确原字符串的固定格式(比如是「多单词前缀 + " - " + 后缀单词」),可以通过以下代码还原:
const formattedStr = "air-quality-indoor"; // 1. 分割为单词数组并恢复每个单词的首字母大写 const words = formattedStr.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1) ); // 2. 根据原格式拆分拼接(这里原格式是前2个单词为前缀,最后1个为后缀) const prefix = words.slice(0, 2).join(' '); const suffix = words[words.length - 1]; const originalStr = `${prefix} - ${suffix}`; console.log(originalStr); // 输出:Air Quality - Indoor
通用情况说明
如果没有原字符串的结构信息,无法100%精准还原——因为格式化后的 - 同时对应原字符串的空格和被删除的 -,没有足够信息区分两者的位置。
内容的提问来源于stack exchange,提问作者Asit singh
相关产品推荐
相关产品推荐

