Попробуйте следующее:
var text = "1. recipe description. 2. second step of the description that takes 30 minutes. 3. third step of the description that contain 20g of flour.";
var steps = text.split(/\s*\d+\.\s*/g).slice(1);
console.log(steps)
Это разделяется на число, за которым следует полная остановка, возможно, с пробелами на обоих концах. Ваш текущий шаблон, кажется, пытается нацелиться на одиночный di git, появляющийся только в начале строки, и есть и другие проблемы.
Небольшое редактирование: вызов slice(1)
для массива, возвращенного из split, чтобы удалить фиктивный пустой строковый элемент, полученный в результате разбиения по первому числу.