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

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

相关推荐
3D虚拟工厂12 分钟前
1️⃣7️⃣three.js_OrbitControls相机控制器
javascript·3d·vue·blender·three.js·uv
Yan-英杰16 分钟前
npm error code CERT_HAS_EXPIRED
服务器·前端·数据库·人工智能·mysql·npm·node.js
sunly_1 小时前
Flutter:组件10、倒计时
开发语言·javascript·flutter
长流小哥1 小时前
MySQL数据操作全攻略:DML增删改与DQL高级查询实战指南
数据库·mysql
麓殇⊙1 小时前
MySQL--索引入门
android·数据库·mysql
徐白11772 小时前
Node.js 事件循环和线程池任务完整指南
开发语言·javascript·node.js
哈希茶馆2 小时前
前端工程化利器:Node.js 文件匹配库 fast-glob 完全指南——比传统方案快 350% 的「文件搜索神器」
运维·前端·javascript·npm·node.js·全文检索·运维开发
又逢乱世2 小时前
Ubuntu 安装 MySQL8
linux·运维·mysql·ubuntu
小镇敲码人2 小时前
【掌握 DDL】:SQL 中的数据库与表管理
数据库·sql·mysql·oracle
软件开发技术深度爱好者2 小时前
HTML5+JavaScript实现连连看游戏之二
javascript·游戏·html5