- 使用正則
const STR = 'abc-def-ghi'
const REG = /-[a-z]/g
let 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 = 0
while (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查詢出要替換的位置,然後利用迴圈一次替換這些位置。