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

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

相关推荐
HANK2 分钟前
KLineChart 绘制教程
前端·vue.js
Jerry13 分钟前
Compose 利用工具加快开发速度
前端
超级迅猛龙22 分钟前
保姆级Debezium抽取SQL Server同步kafka
数据库·hadoop·mysql·sqlserver·kafka·linq·cdc
前端小张同学24 分钟前
前端行情好起来了,但是我依然没拿到offer
前端
程序员小续27 分钟前
React 官方严令禁止:Hook 不能写在 if/else,真相竟然是…
前端·javascript·程序员
懒得不想起名字27 分钟前
flutter_riverpod: ^2.6.1 应用笔记
前端
CrabXin27 分钟前
让网页在 PC 缩放时“纹丝不动”的 4 个技巧
前端·react.js
Juchecar37 分钟前
Naive UI 学习指南 - Vue3 初学者完全教程
前端·vue.js
用户81686947472538 分钟前
从0到1教你开发一个Mini-ESLint
前端·开源
coding随想38 分钟前
JavaScript中的DOM事件对象Event全解析
前端