📅  最后修改于: 2023-12-03 14:42:32.309000             🧑  作者: Mango
在 Javascript 中,数字可以使用逗号作为千位分隔符进行分组。但是默认情况下,只有整数部分会使用逗号进行分隔,小数部分则不会。如果想要在小数部分也显示逗号分隔,该怎么办呢?
下面是一个简单的解决方案:
const numberWithCommas = (num) => {
const parts = num.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
这个函数接受一个数字作为参数,使用 toString()
方法将其转换为字符串,并通过 split()
方法拆分为整数部分和小数部分,分别保存到数组 parts
的第一个和第二个元素中。
接下来,对整数部分应用正则表达式 /\\B(?=(\\d{3})+(?!\\d))/g
,用逗号替换每三个数字的后面一个非单词边界。这个正则表达式的含义是:
\\B
:匹配非单词边界(也就是数字之间的位置)。(?=(\\d{3})+(?!\\d))
:使用正向预测先行断言匹配一个或多个连续三个数字的组合。/g
:指定全局匹配。最后,使用 join()
方法将整数部分和小数部分重新组合成一个字符串,并返回结果。
举个例子,如果调用 numberWithCommas(1234567.89)
,返回的结果是 "1,234,567.89"
。
希望这个简单的解决方案能够帮助到你!