Разбить текст на строки если встретится число

Есть однострочный текст "1. Разработать план мероприятий и ни чего не делать. 2. Повторно напиться 'Охоты'. 3. Выполнить какую нить задачу."

Задача привести его в вид

  1. Разработать план мероприятий и ни чего не делать.
  2. Повторно напиться 'Охоты'.
  3. Выполнить какую нить задачу.

const text = "1. Разработать план мероприятий и ни чего не делать. 2. Повторно напиться 'Охоты'. 3. Выполнить какую нить задачу."

function disassembleText(text) {
    const regexp = `/\d/g`;

    var dessembler = text.split(' ');

    for (var key of dessembler) {
        var test = key.replace(regexp, '\n');
        console.log(test);
    }
}

console.log(disassembleText(text))

Попытался через регулярные выражения, но метод replace не работает. Или не правильно экранирую регулярное выражение.


Ответы (3 шт):

Автор решения: SwaD

Можно воспользоваться методом replace без каких либо дополнительных разбиений строки в массив

const text = "1. Разработать план мероприятий и ни чего не делать. 2. Повторно напиться 'Охоты'. 3. Выполнить какую нить задачу."

console.log(text.replace(/(\d)/g, '\n$1'))

→ Ссылка
Автор решения: Qwertiy

function disassembleText(text) {
  return text.match(/(?:\d+\.)?(?:(?!\d+\.).)+/g)?.join("\n") || text
}

console.log(disassembleText("1. Разработать план мероприятий и ничего не делать. 2. Повторно напиться 'Охоты'. 3. Выполнить какую нить задачу."))
console.log(disassembleText("1. Разработать план мероприятий и ничего не делать."))
console.log(disassembleText("Разработать план мероприятий и ничего не делать."))
console.log(disassembleText("Разработать 2 плана мероприятий 123. и ничего не делать."))
console.log(disassembleText(""))

→ Ссылка
Автор решения: ksa

Можно и без скобок...

const text = "1. Разработать план мероприятий и ни чего не делать. 2. Повторно напиться 'Охоты'. 3. Выполнить какую нить задачу."

console.log(text.replace(/\d/g, '\n$&'))

→ Ссылка