Как я могу преобразовать строку "folder / lower-case-with-dash" в "folderLowerCaseWithDash" (т.е. в формат camelCase) с помощью регулярных выражений? - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь создать функцию, которая преобразует строку в формат «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 Ответ

2 голосов
/ 16 мая 2019

Используйте набор символов, включающий /, чтобы оба - и / соответствовали в начале:

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

console.log(camelCase("folder/lower-case-with-dash"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...