正则表达式添加数千,数百万等逗号(但避免在小数点后添加它们)Javascript

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式添加数千,数百万等逗号(但避免在小数点后添加它们)Javascript相关的知识,希望对你有一定的参考价值。

问题很简单,我们需要将逗号放在正确的位置,以帮助用户以正确的方式格式化数字。

例如,如果用户输入:

123123123.534343

结果应该是:

123,123,123.534343

而我们现在拥有的是:(当没有'。'时失败)

str.toString()。replace(/ B(?=( d {3})+(?! d)。)/ g,',');

并且:(失败,因为它在'。'后面的小数部分添加了逗号)

str.toString()。replace(/ B(?=( d {3})+(?! d))/ g,',');

有任何想法吗?

答案

最好使用Intl.NumberFormat格式化数字,因为它取决于语言

console.log(new Intl.NumberFormat('en-US').format(123123123.534343));
另一答案

小数点前4位数的正则表达式示例:

echo 1234.556 | sed 's/([0-9])([0-9])([0-9])([0-9])(.[0-9]*)/1,2345/'

您需要相应地更新它以获得不同数量的数字(但请注意,匹配模式的限制为9,至少为sed,因此这将适用于小数点前最多8位数)。

以上是关于正则表达式添加数千,数百万等逗号(但避免在小数点后添加它们)Javascript的主要内容,如果未能解决你的问题,请参考以下文章

添加逗号时如何更新此 jQuery 插件/正则表达式以忽略小数?

MATLAB:与少数(数千)个大文件相比,很多(数百万)个小文件有啥问题吗?

具有数千、数百万和数十亿的问题排序数字(货币)

从C#中的数据中删除特殊字符后如何将dbf文件中的数百万行数据上传到SQL Server

正则表达式验证小数前后的数字,不包括逗号

正则表达式将数字转换为逗号分隔的数字,可选两位小数