"260000008".replaceAll("(?<=\d)(?=(?:\d{3})+$)", ",");
// => 260,000,008
(?<=\d)(?=(\d{3})+(\.|$))
正则表达式:
(?<=d)(?<!.d*)(?=(d{3})+(.|$))
替换为:,
我们拆开来看看:
(?<=d) #当前位置前面必须是数字
(?<!.d*) #当前位置前面不能是小数点
(?=(d{3})+(.|$)) #当前位置是3个数字的循环,最后到小数点或结束
对照一串数字我们就不难发现,上面指定的当前位置,就是千分位所在位置,如:
345,678
12,345,678.12345
2,345,678