javascript为数字添加千分符

本文介绍了一种使用正则表达式将数字格式化为带有千位分隔符的形式的方法。通过一个具体的例子,即如何将数字123456789转换成更易读的123,456,789格式,详细解析了正则表达式的构成及工作原理。

实现的功能为:

123456789 转换为123,456,789


使用的正则表达式如下所示:

/(\d{1,3})(?=(\d{3})+$)/g


使用方式:

var num = 123456789;

num.toString().replace(/(\d{1,3})(?=(\d{3})+$)/g,'$1,');


执行完结果就是: 123,456,789


下面我来解释一下这个正则表示是怎么实现的功能


这里面用到的正则表达式元素有

1. \d      匹配数字相当于[0-9]

2. {m,n} 匹配的数目大于m小于n,所以\d{1,3}的意思就是匹配1到3个数字

3. ?=     正向前瞻,它稍微复杂一点,说不清楚就举个例子

/\d/会匹配一个数字,/\d(?=\w)/依然只匹配一个数字,但是它要求数字后面跟一个字母

'1a'.match(/\d(?=\w)/) 结果为 1


所以/(\d{1,3})(?=(\d{3})+$)/g这个正则表达式的意思就是:

匹配1到3个数字,并且这个数字后面要跟着3的倍数的数字,也就是3,6,9,...个数字

'123456789'.match(/(\d{1,3})(?=(\d{3})+$)/g) 会匹配到 ["123", "456"]

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值