javascript为数字添加千分符

实现的功能为:

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"]

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值