修身养性,知行合一

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

[正则] 格式化数字

2024年2月19日 2053点热度 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
最新 热点 随机
最新 热点 随机
推一个vscode纯黑主题 vue 的递归插槽穿透 Github Pages SPA 重定向 行间距引出的 DOCTYPE 怪异行为 写个小彩蛋 绘制一个可重用的线条阴影
vue 的递归插槽穿透推一个vscode纯黑主题
.NET Core将Json字符串反序列化为对象 Windows Server 无法安装网卡驱动的解决方案 手撸了一个基于Vue的Gantt组件 windows下自动备份文件 美化 Windows Terminal(升级版) rgb 颜色小数兼容问题

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

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号