正则表达式如何匹配数字并插入逗号

问题描述 投票:0回答:1

很抱歉问新手问题,但我已经研究了几个小时,我发现正则表达式对我来说太难了。

我正在尝试将某些内容与前视和后视相匹配,并将逗号插入到这些数字中。

假设首先尝试将

ABC2345.67DEF
中的数字与
(?<=ABC)(.*?)(?=DEF)

进行匹配

但是我想在点之前插入一个逗号 3 位数字,如下所示

2,345.67
而不是2345.67

任何帮助将不胜感激

regex
1个回答
0
投票

您需要从字符串中提取数字,然后在数字中添加逗号。为此,我更新了您的旧正则表达式以提取数字。然后,使用另一个正则表达式插入逗号。我提供我的代码。

const test = 'ABC2345.67DEF';
const result = test.match(/(?<=ABC)(\d+)(\.\d+)(?=DEF)/);

const numbersBeforeDecimal = result[1].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
const numbersAfterDecimal = result[2];

const updatedResult = `ABC${numbersBeforeDecimal}${numbersAfterDecimal}DEF`;
© www.soinside.com 2019 - 2024. All rights reserved.