Regex не работает правильно в функции сортировки JavaScript - PullRequest
0 голосов
/ 11 марта 2019

У меня проблема с сортировочным плагином JS для моих таблиц. Он называется «Сортируемый». Когда вы просматриваете документацию этого плагина, вы можете узнать, что вы можете определить свои собственные типы сортировки:

https://github.hubspot.com/sortable/api/options/

Итак, я определил свой пользовательский фильтр и назвал его price:

sortable.setupTypes([{
    name: "numeric", defaultSortDirection: "descending", match: function (a) {
        return a.match(d)
    }, comparator: function (a) {
        return parseFloat(a.replace(/[^0-9.-]/g, ""), 10) || 0
    }
}]);

Это работает особенно хорошо, но когда я добавляю цену возврата, это работает не правильно:

Моя обычная цена: 2.372,11 €
Моя цена возврата: 765,38 €0,00 €

Когда функция извлекает цену возврата, результат выглядит следующим образом: 765,38 € 0,00 €, но я должен выглядеть следующим образом 000.

Итак, я настроил свое регулярное выражение таким образом /[^0-9-]/g, но оно не фильтрует цену del. По логике, регулярное выражение нужно изменить так, как оно начинается после первого €_ или что-то вроде этого.

Возможно ли это? Если да, то как?

Ответы [ 2 ]

2 голосов
/ 11 марта 2019

Я бы пошел с чем-то вроде этого

a.replace(/^.*?([0-9]+),([0-9]+)\s*€\s*$/, "$1$2")

https://regex101.com/r/FHOYja/1

0 голосов
/ 11 марта 2019

Регулярное выражение для захвата всего после первого "€" будет (?<=€ ).*$ пример для regex101: https://regex101.com/r/pULCel/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...