十进制没有逗号

时间:2018-06-09 03:07:20

标签: javascript

const numberWithCommas = (x) => {
 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

我有这个功能,如果发送一个号码,如1223.00001,它会像1,223.00,001一样返回,但我想得到1,223.00001!我想得到没有逗号的小数!这question给了我不同的答案!

1 个答案:

答案 0 :(得分:0)

你可以在你的正则表达式中添加一个正向前瞻,它断言小数点跟随。这保证了替换只发生在整数组件上。



x = "1223.00001";
x = x.replace(/\B(?=(\d{3})+(?!\d))(?=.*\.)/g, ",");
console.log(x);




一个相当强力的选择是将您当前的正则表达式应用于输入的整数侧。然后,连接用小数部分替换结果。



x = "1223.00001";
top = x.replace(/\..*$/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
bottom = x.replace(/^.*\./, "");
console.log(top + "." + bottom);