Regex для нацеливания на соседний нижний и верхний регистр Char

1
function spinalCase(str) {

  //Replace aB to a-B
  return str.replace(/[a-z]+[A-Z]/,'$1,-,$2');
}

spinalCase('ThisIsSpinalTap');

Я хочу, чтобы этот вход "ThisIsSpinalTap" на выход "This-Is-Spinal Tap-", используя регулярное выражение для целевого строчных букв, примыкающих к верхнему регистру, а добавление - между ними. Неправильный вывод, который я получаю, это.

т $ 1, $ 2sspinaltap

Ссылка MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

Теги:

2 ответа

3
Лучший ответ

Использование групп захвата -

function tap(str) {
  return str.replace(/([a-z])([A-Z])/g, '$1-$2');
}

console.log(tap('ThisIsSpinalTap'));
1

Вам нужны скобки вокруг частей, которые вы ожидаете от $ 1 и $ 2./([AZ] +) ([AZ])/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню