我在stackoverflow上找到了一个正则表达式来添加“,”或“。”。根据您的语言,每三分之二后的数字。

(\d)(?=(\d\d\d)+(?!\d))

问题是,当我们到达小数点时也会发生这种情况,例如:
5487445.46878

使用以下代码(和正则表达式)的结果是:
return number.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");

结果是:
5,487,445.46,878

当我根据您的语言来转换数字时,我正在使用此正则表达式。例如,在荷兰语中,逗号用作分隔符,因此我需要执行以下操作:
return number.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1.")

导致
5.487.445,46.878

这些当然需要成为:
5,487,445.46878


5.487.445,4687

有人知道我需要在哪里更新正则表达式以忽略小数点吗?

最佳答案

您可以使用RegEx,但如果数字中带有逗号或点,请先分割数字。

jsFiddle demo

 var input = '5487445.46878';
 var parts = input.split('.');
 var part1 = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
 var part2 = parts[1];

 alert(part1 + '.' + part2);

10-08 14:39