您好,匿名用户

正则表达式处理每三位数字加逗号的问题

0 投票

希望实现浮点数字每三位加一个逗号
网上的做法很多,看了一些,但是还是想按着自己的思路自己写

let str = "8432957983475934.84378";
let reg = new RegExp(/(?<=\d)(?=(\d{3})+(\.\d+)?$)/,'g');
console.log(str.replace(reg,','));

输出是:

8,432,957,983,475,934.84,378

目前小数点前都是对的 但是小数点后应该是不出现逗号的
麻烦大神帮忙改改

用户头像 提问 3 天 @ Hecarim 上士 (1,561 威望)
分享到:

1个回答

0 投票
 
最佳答案
function formatNumber(str){
    let reg = new RegExp(/(?<=\d)(?=(\d{3})+(\.\d+)?$)/,'g');
    let i = str.indexOf('.');
    return str.replace(reg,(...args)=>args[args.length-2]<i|i==-1?",":"");
}
用户头像 回复 3 天 @ dongxldante 下士 (726 威望)
选中 5月12日 @Hecarim
提一个问题:

相关问题

0 投票
1 回复 126 阅读
0 投票
1 回复 100 阅读
0 投票
1 回复 30 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...