Всем привет. Вопрос по регулярным выражениям - есть строка
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"]
Комментариев нет:
Отправить комментарий