Извлечь из строки данные и разбить JS

помогите решить задачу с извлечением данных из обычной текстовой строки через js. Суть в том что данные в строке должны быть разбиты и переданы в сценарий ответа.

Пример текстового запроса: Летим из Казани в Москву с 01-11 до 03-11 2 пассажира (пока нужно извлечь только две даты с и до и цифру в конце).

Нужно получить на выходе:

Дата отправления: 0111

Дата возвращения: 0311

Пассажиров: 2

То есть просто нужно извлечь все цифры из строки и по очереди их разбить, в датах всегда будет 4 символа, а в кол-ве пассажиров всегда будет 1 символ.


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

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

Покажу именованные группы захвата в RegExp

const s = 'Летим из Казани в Москву с 01-11 до 03-11 2 пассажира';

const r = /с\s+(?<since>\S+)\s+до\s+(?<until>\S+)\s+(?<pass>\S+)\s+пасс/u;

const match = s.match(r);
if (match) {
    const data = match.groups;

    console.log(`С: ${data.since.replace(/\D+/, '')}`);
    console.log(`До: ${data.until.replace(/\D+/, '')}`);
    console.log(`Пассажиров: ${data.pass}`);
}

→ Ссылка