从字符串中删除每个字符,除了数字和字符之间的数字

时间:2018-09-28 01:52:47

标签: javascript jquery regex

我面临的问题是我无法从字符串中获取数字以及这些数字之间的点或逗号。

示例字符串:“ kr.2.000,00 DKK”或“ $ 150.65 USD”或“€340.00 EUR”

我需要从此字符串中使用正则表达式获取“ 2.000,00”。因此,正则表达式基本上是获取数字及其之间的任何字符并将其存储在变量中。

这是我的代码:

var oldPrice = 'kr.2.000,00 DKK';
var newPrice = oldPrice.replace(/^\d+(\.|,)?\d+(\.|,)?\d+$/igm, "");

我需要2.00,00的newPrice变量。请帮助大家!

2 个答案:

答案 0 :(得分:1)

您的模式在正确的轨道上,只需删除^$锚点即可使其工作。然后,将其重复应用于输入字符串以提取所需的值。请注意,我对模式所做的一项更改是允许在初始数字之后的分隔符/数字部分重复任意次数。这涵盖了诸如1,500,000之类的输入,该输入具有超过一千个分隔符。

var re = /\d+(?:[,.]?\d+)*[,.]?\d+/g;
var input = "kr.2.000,00 DKK' OR '$150.65 USD' OR '€340.00 EUR OR ¥1,500,000";
var m;

do {
    m = re.exec(input);
    if (m) {
        console.log(m[0]);
    }
} while (m);

答案 1 :(得分:0)

那呢?

var oldPrice = 'kr.2.000,00 DKK';
var newPrice = oldPrice.match(/\d+.*\d+/)[0];

“。*”代表您所说的“ ..以及它们之间的任何字符”的部分