正则表达式在JavaScript排序功能中无法正常工作

时间:2019-03-11 13:59:59

标签: javascript regex

我的表格排序JS插件出现问题。它被命名为“ Sortable”。当您查看此插件的文档时,您会发现可以定义自定义排序类型:

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 个答案:

答案 0 :(得分:2)

我会喜欢这样的东西

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

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

答案 1 :(得分:0)

要捕获第一个“€”之后的所有内容的正则表达式将是regex101上的(?<=€ ).*$示例:https://regex101.com/r/pULCel/1