跳到主要内容

千分位转换的正则

· 阅读需 1 分钟
lzw.
//每三位数逗号隔开
'123456789'.toString().replace(/B(?=(d{3})+$)/g,',');

// or
Number('123456789').toLocaleString()

// or
'123456789'.toString().replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,')

结果:

123,456,789 

B:匹配非单词边界
(?=):正向零宽断言
d{3}:匹配三个数字字符
+:与前面的d{3}结合表示匹配3的整数倍个数字字符
$:字符串结尾 $& 表示匹配到的数字,比如:’123‘,’456‘
所以合起来的意思就是:匹配单词中的某个位置,这个位置之后的字符全部为数字,且出现次数是3的整数倍。