帮我理解这个正则表达式,实在搞不懂

下面是千分位格式化的正则表达式,传入1234567890,返回
1,234,567,890
不知道如何理解,请逐个字符解释给我这个小白听

function regFormatPermil(v){
 const reg = /d{1,3}(?=(d{3})+$)/g
 return `${v}`.replace(reg,'$&,')
}
阅读 2.6k
2 个回答

这里用到了断言,在浏览器端使用要注意兼容性,chrome是支持的,但是firefox和safari之类的貌似都不支持。

/d{1,3}(?=(d{3})+$)/g 这个正则以贪婪模式匹配一个串a, 仅当a后面跟着3的倍数个数字时才匹配,?=为后行断言先行断言,表示紧随其后的条件,但是不在匹配结果里,即不是a的一部分。
a的长度在1-3之间(/d{1, 3}, 贪婪模式会尽可能长地匹配)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进