Код Middle Реализация с нуля обновлено

camelCase в snake_case

Условие

Преврати camelCase в snake_case. Аббревиатуры подряд идущих заглавных считаются одним словом: 'parseHTMLString' → 'parse_html_string'.

Примеры

camelToSnake("backgroundColor") // "background_color"
camelToSnake("parseHTMLString") // "parse_html_string"
camelToSnake("abc") // "abc"

Как подойти

Наивная замена каждой заглавной ломается на аббревиатурах - это и есть проверяемое место. Две подстановки закрывают оба вида границ: после строчной или цифры перед заглавной, и внутри серии заглавных перед началом нового слова. Обратное преобразование - одна замена /_([a-z])/g.

Подсказки: 2
  1. Две регулярки: граница «строчная → заглавная» и граница «конец аббревиатуры → новое слово».
  2. Одной регулярки на заглавные мало: HTMLString развалится на h_t_m_l_string.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.