js正则表达式将一个字符串拆分成3个一组,每组添加,

javascript 复制代码
let a='123456789.9876543210'

a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")//输出结果:'123,456,789.9,876,543,210'
  1. num.toString(): 将数字 num 转换为字符串。

  2. .replace(/\B(?=(\d{3})+(?!\d))/g, ','):

    • .replace() 是字符串对象的方法,用于替换匹配的字符串。
    • / \B(?=(\d{3})+(?!\d))/g 是一个新的正则表达式。
      • \B: 匹配一个非单词边界,确保我们不在数字的开头插入逗号。
      • (?=(\d{3})+(?!\d)): 正向预查,匹配之后跟着一组三个数字(这个组可以重复多次),但是不能再有数字。
      • /g: 全局匹配,替换所有匹配而不仅仅是第一个。
    • ',': 替换为逗号。

假设 num 的值为 1234567.89

  • num.toString() 将其转换为字符串 "1234567.89"
  • .replace(/\B(?=(\d{3})+(?!\d))/g, ',')
    • 正则表达式在字符串中查找每个非单词边界的位置。
    • 当它找到一个位置,该位置后面跟着一组三个数字(或者是字符串的结尾),就在这个位置插入一个逗号。
    • 所以,1234567.89 被替换为 1,234,567.89

这样修改后的代码能够正确处理包含小数位的数字,并在适当的位置插入千位分隔符。

相关推荐
火星数据-Tina1 分钟前
如何构建一个支持多终端同步的体育比分网站?
大数据·前端·数据库·websocket
IT_陈寒4 分钟前
React 19 实战:5个新特性让你的开发效率提升50%!
前端·人工智能·后端
GuMoYu4 分钟前
el-date-picker限制选择范围
前端·javascript·vue.js
a31582380610 分钟前
Android 大图显示策略优化显示(二)
android·java·开发语言·javascript·kotlin·glide·图片加载
冴羽26 分钟前
JavaScript Date 语法要过时了!以后用这个替代!
前端·javascript·node.js
加油乐27 分钟前
react使用Ant Design
前端·react.js·ant design
OEC小胖胖27 分钟前
05|从 `SuspenseException` 到 `retryTimedOutBoundary`:Suspense 的 Ping 与 Retry 机制
前端·前端框架·react·开源库
攀登的牵牛花39 分钟前
前端向架构突围系列 - 框架设计(三):用开闭原则拯救你的组件库
前端·架构
前端小L44 分钟前
专题一:搭建测试驱动环境 (TypeScript + Vitest)
前端·javascript·typescript·源码·vue3