修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
修身养性,知行合一
码字,杂谈
  1. 首页
  2. 爱码
  3. 前端
  4. JavaScript
  5. 正文

[正则] 格式化数字

2024年2月19日 1754点热度 0人点赞 0条评论

千分位

有些时候,我们需要将数字转为千分位分割展示:

'123456789.1234'.replace(/^(\d+)((\.\d+)?)$/, (s, s1, s2) => s1.replace(/(\d{1,3})(?=(\d{3})+$)/g, '$&,') + s2) // '123,456,789.1234'

有特殊需求时,还可以把 3 改为动态数字,通过 new RegExp() 的方式,动态生成正则即可。

切掉小数末尾的0

有些时候,我们需要去掉数字后面多余的0,以保持展示的最短效果。

通常数字保留两位,最简单的方式:

'1.20'.replace(/(\.[1-9]+)0+$|\.0*$/, '$1') // 1.2
'0.00'.replace(/(\.[1-9]+)0+$|\.0*$/, '$1') // 0

这种方式仅仅适用于保留两位小数以后再切掉多余的0。

有一些时候,小数位可能会更多,此时,这个正则就不适用了:

'1.1010'.replace(/(\.[1-9]+)0+$|\.0*$/, '$1') // 1.1010

修改一下正则:

'1.1010'.replace(/(\.\d+[1-9]{1})0+$|\.0*$/, '$1') // 1.101
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: JavaScript
最后更新:2024年2月19日

jeremyjone

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

文章目录
  • 千分位
  • 切掉小数末尾的0
最新 热点 随机
最新 热点 随机
node-sass 的安装 解决端口被占的问题 vue3 组件 Props 的声明方式 给 div 添加选中状态 请求的取消 rgb 颜色小数兼容问题
手动实现JS节流 微信小程序 - BILIBILI-demo TypeScript class 中的 get 属性在传递中神奇消失 JavaScript 之 canvas(四)-- 绘制文字 推荐一款 JS 水印工具 JavaScript异步加载图片

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号