以下内容将连接多个单词并删除所有"falsy"值(null,undefineds,空字符串等(。
combinedAddress = [address, city, state, zip].filter(Boolean).join(", ");
此外,这将删除单个空格中的所有中间多个空格。
city.replace(/s+/g, ' ')
目标:
- 我需要组合所有单词 - 仅当字符串不为空或为空时才使用分隔符连接字符串
- 删除中间的多个空格 - 用 JavaScript 字符串中的单个空格替换多个空格
- 还完全删除每个的前导空格和尾随空格 单个单词。
最终结果如下。只是好奇是否有任何方法可以简化这一点,或者这是最佳实践语法?我们正在使用 Angular 8 Typescript(Javascript 的子集(。
combinedAddress = [address.replace(/s+/g, ' ').trim(), city.replace(/s+/g, ' ').trim(), state.replace(/s+/g, ' ').trim(), zip.replace(/s+/g, ' ').trim()].filter(Boolean).join(", ");
仅当字符串不为 null 或为空时才使用分隔符联接字符串
将 JavaScript 字符串中的多个空格替换为单个空格
你可以把它作为一个单行,如下所示:
combinedAddress = [address, city, state, zip].map(elem=>elem.replace(/s+/g, ' ').trim()).filter(Boolean).join(", ");
虽然有时温度变量更清晰:
let addresses = [address, city, state, zip];
let combinedAddress = addresses.map(elem=>elem.replace(/s+/g, ' ').trim());
let truthyAddresses = combinedAddress .filter(Boolean).join(", ");