Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить слова до определённого слова и числа? (https://javascript.ru/forum/misc/79894-kak-poluchit-slova-do-opredeljonnogo-slova-i-chisla.html)

nastya97core 04.04.2020 20:41

Как получить слова до определённого слова и числа?
 
Здравствуйте. Подскажите, как с помощью регулярных выражений получить все слова до определённого?

У меня есть строки такого типа
[
'Консультация по заключению договора 400 руб. Прочие услуги: 200 руб.',
'Консультация по статье 18.1 1245.40 руб. Прочие услуги: 200 руб.',
'Договор на оказание услуг: 654.30 руб.',
'Сбор за 14 статью и за 322 определение 654.30 руб.',
]


Мне с помощью регулярных выражений нужно получить всё то, что стоит перед первой стоимостью. То есть ориентир должен быть: "(стоимость) руб.". В случае этих строк на выходе:
Код:

Консультация по заключению договора
Консультация по статье 18.1
Договор на оказание услуг
Сбор за 14 статью и за 322 определение

Помогите пожалуйста

рони 04.04.2020 21:08

nastya97core,
<script>
let arr = [
'Консультация по заключению договора 400 руб. Прочие услуги: 200 руб.',
'Консультация по статье 18.1 1245.40 руб. Прочие услуги: 200 руб.',
'Договор на оказание услуг: 654.30 руб.',
'Сбор за 14 статью и за 322 определение 654.30 руб.',
].map(str => str.match(/(.*?)(?=\s+\d+(\.\d+)?\s?руб\.)/)[0]);
document.write(arr.join('<br>'))
  </script>

laimas 04.04.2020 21:18

Можно проще - match(/^\D+/)[0]

PS. Нет, не только же цены .. )

nastya97core 04.04.2020 21:24

рони,
О! Уже? Спасибо!!!

Подскажите, может вы знаете. Где лучше делать обработку? На сервере (php) или на клиенте? Что быстрее будет?

рони 04.04.2020 21:27

Цитата:

Сообщение от nastya97core
Что быстрее будет?

лучше на сервере, если нет какого-то хитрого взаимодействия клиента с данными.

laimas 04.04.2020 22:03

Цитата:

Сообщение от nastya97core
Где лучше делать обработку? На сервере (php) или на клиенте?

На сервере вообще не должно быть таких ситуаций когда нужно потрошить текст, если только этот текст не чужой. На сервере нужно хранить структурированные данные, а не все в куче.


Часовой пояс GMT +3, время: 14:18.