Страницы

Поиск по вопросам

среда, 5 июня 2019 г.

Не получается сделать правильный массив целых чисел и чисел с десятичными дробями

Всем привет. Вопрос по регулярным выражениям - есть строка
1 × 360.000 руб.
Я пробую из нее вытащить массив:
var quantity = $(".quantity").text().match(/\d+\.\d+/g)
получаю массив ["360.000"] делаю вот так
var quantity = $(".quantity").text().match(/\d+/g) match(/\d+/g)
Я получаю: ["1", "360", "000"]
Мне нужно получить ["1", "360.000"]
Что я делаю не правильно?


Ответ

Необходимо поправить выражение вот так:
var quantity = $(".quantity").text().match(/\d+(?:\.\d+)?/g)
Объяснение:
\d+ - 1 или более цифр (?:\.\d+)? - Необязательная группа, которая находит
\. - точку \d+ - 1 или более цифр
Если необходимо, можно добавить знаки + или -, но мне кажется, что это в Вашем случае не нужно.
А вот как это выражение выглядит на рисунке:

Демо на Debuggex
В сети есть множество сервисов для расшифровки и отладки регулярных выражений, например вышеупомянутый Debuggex и Regex101
Пример кода:
var quantity = $(".quantity").text().match(/\d+(?:\.\d+)?/g) console.log(quantity);

1 × 360.000 руб.

Результат:
["1", "360.000"]

Комментариев нет:

Отправить комментарий