JavaScript实现camelCase驼峰字符串拆分的方法求助
当然可行!我来帮你搞定这个问题
首先得说,你当前代码出现那种逗号分隔每个字符的结果,是因为用了split("")——这个方法会把字符串拆成单个字符组成的数组,当你直接把数组和HTML字符串拼接时,JavaScript会默认用逗号分隔数组元素,所以才会输出A,l,l,...这种奇怪的结果,这完全不是你想要的文本格式调整方式。
正确的解决方案:针对驼峰式文本的替换
你的需求是把驼峰式的shineBlue转换成shine, blue,本质是在小写字母和大写字母的分界处插入, ,并把大写字母转成小写。这里用正则表达式的全局替换最方便,通用还能处理所有类似的驼峰场景:
var itemName = '<%= data[i].ITEMNAME %>'; // 处理驼峰分隔,添加逗号空格并将大写字母转小写 var formattedItemName = itemName.replace(/([a-z])([A-Z])/g, function(match, lowerChar, upperChar) { return lowerChar + ', ' + upperChar.toLowerCase(); }); document.write("<td>" + formattedItemName + "</td>");
代码解释:
- 正则
/([a-z])([A-Z])/g:全局匹配所有“小写字母紧跟大写字母”的组合,并用捕获组分别保存这两个字符。 - 替换函数里,我们把第一个捕获的小写字母保留,加上
,,再把第二个捕获的大写字母转成小写,这样就完美实现了shineBlue→shine, blue的转换。
如果你只需要替换特定的文本
如果你的场景里只有shineBlue这一种需要调整的情况,也可以用更简单的精准替换:
var formattedItemName = itemName.replace("shineBlue", "shine, blue");
不过正则的方式更灵活,比如以后遇到fooBar、helloWorld这类文本,也能自动转换成foo, bar、hello, world。
内容的提问来源于stack exchange,提问作者Gianluca
相关产品推荐
相关产品推荐

