如何添加正则表达式实现Haircut与Wash间添加逗号的需求?
问题:如何添加正则实现
Haircut, Wash And Blow Dry的格式? 嘿,我来帮你搞定这个需求!你想要把HaircutWashAndBlowDry转换成Haircut, Wash And Blow Dry,核心就是在Haircut和Wash之间加个逗号,其他大写字母前加空格对吧?
先看你现有的代码,它已经能把驼峰式字符串拆分成带空格的Haircut Wash And Blow Dry,现在只需要针对特定位置调整即可。这里有两种简单的实现方式:
方法一:先拆分空格,再替换特定位置
这种方法最直观,保留你原有的拆分逻辑,再对Haircut Wash这个组合做针对性替换:
if(string === 'HaircutWashAndBlowDry'){ let str = string.charAt(0).toUpperCase() + string.slice(1); // 先把驼峰拆分成带空格的字符串 str = str.replace(/([A-Z])/g, ' $1').trim(); // 新增替换逻辑,把Haircut后面的空格改成逗号+空格 str = str.replace(/Haircut Wash/, 'Haircut, Wash'); }
方法二:用正则一次性处理
如果想一步到位,也可以通过自定义替换函数,精准判断需要加逗号的位置,其他位置正常加空格:
if(string === 'HaircutWashAndBlowDry'){ let str = string.replace(/([a-z])([A-Z])/g, (match, prevChar, nextChar) => { // 匹配Haircut的最后一个字母t后面跟着W的情况 if (prevChar === 't' && nextChar === 'W') { return prevChar + ', ' + nextChar; } // 其他驼峰位置正常添加空格 return prevChar + ' ' + nextChar; }); }
两种方法都能完美得到你想要的Haircut, Wash And Blow Dry效果哦~
内容的提问来源于stack exchange,提问作者Deke
相关产品推荐
相关产品推荐

