文章 - 一行代码实现数字千位分隔符
方法
var format = function (number) {
return String(number).replace(/(\d)(?=(\d{3})+$)/g, '$1,');
};
原理
难点在这个正则上。
/(\d)(?=(\d{3})+$)/g
?=
术语叫 先行断言。
x(?=y) 称为先行断言(Positive look-ahead),x 只有在 y 前面才匹配,y 不会被计入返回结果。
var m = "abc".match(/b(?=c)/);
m
// "b"
上面的代码使用了先行断言,b 在 c 前面所以被匹配,但是括号对应的 c 不会被返回。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论