- 使用正则
const STR = 'abc-def-ghi'const REG = /-[a-z]/glet result = STR.replace(REG, function (res) { return res.charAt(1).toUpperCase() // 处理每一个替换结果})console.log(result)// abcDefGhi复制代码
原理是用正则选择出要替换的部分,然后采用replace
方法替换。
- 转换为数组
const STR = 'abc-def-ghi'let aStr = STR.split('-')let result = aStr.reduce((pre, cur) => { // 使用reduce方法处理数组 let curHead = cur.charAt(0) let resultChunk = cur.replace(curHead, curHead.toUpperCase()) // 转化为首字母大写 return pre + resultChunk})console.log(result)// abcDefGhi复制代码
原理是把字符串转换为数组,再通过reduce
方法,转换成驼峰式
- indexOf查找
let str = 'abc-def-ghi'let count = 0while (count >= 0) { count = str.indexOf('-', count + 1) // 查找'-'出现的位置,并通过循环依次查找 if (count === -1) break // 找不到就直接返回 let replaceStr = '-' + str.charAt(count + 1) str = str.replace(replaceStr, replaceStr.charAt(1).toUpperCase())}console.log(str)// abcDefGhi复制代码
原理是通过indexOf查找出要替换的位置,然后利用循环一次替换这些位置。