如何使用正则表达式将字符串“ folder / lower-case-with-dash”转换为“ folderLowerCaseWithDash”(即,转换为camelCase格式)?

时间:2019-05-16 03:40:30

标签: javascript arrays regex

我正在尝试创建一个将字符串转换为“ camelCase”格式的函数。该函数的当前版本将在连字符-之后大写字母,并删除连字符。

这是当前功能:

function camelCase(str) {
  return str.replace(/-([a-z])/g, g => {
    return g[1].toUpperCase()
  })
}

传递给str参数的字符串除字母字符外,还可以包含单个正斜杠/和连字符-

我尝试了几种我认为可行的正则表达式组合,但是我花了太多时间试图解决这个问题。我该如何更改正则表达式/-([a-z])/g来删除正斜杠?

// CURRENT OUTPUT
console.log(camelCase("folder/lower-case-with-dash"))
// folder/lowerCaseWithDash
// DESIRED OUTPUT
console.log(camelCase("folder/lower-case-with-dash"))
// folderLowerCaseWithDash

对此我将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用包含/的字符集,以使-/都在开头匹配:

function camelCase(str) {
  return str.replace(/[\/-]([a-z])/g, g => {
    return g[1].toUpperCase()
  })
}

console.log(camelCase("folder/lower-case-with-dash"))