1 整数的千位分隔法
1.1 正则分隔
相关知识:
- (?=p),其中p是一个子模式,即p前面的位置。(hello (?=e) 指e前面的位置 “h#ello”)
- (?!p)就是(?=p)的反面意思(hello (?!e) 指除e前面的位置 “#he#l#l#o#”)
- 写个正则不匹配任何东西: /.^/
数字的千分位就是把"12345678",变成"12,345,678"
从后向前3位添加一个逗号
// 仅在最后加入一个逗号
var str = "12345678";
var reg = /(?=\d{3}$)/g
var res = str.replace(reg,',')
console.log(res) // 12345,678
// 若想加多个逗号 需要添加一个 +
var str = "12345678";
var reg = /(?=(\d{3})+$)/g
var res = str.replace(reg,',')
console.log(res) // 12,345,678
console.log("123456789".replace(reg,',')) // ,123,456,789
// 在最前面多添加一个逗号
// 需要把最前面的逗号去掉 (?!^)
// 最终版本
var str = "123456789";
var reg = /(?!^)(?=(\d{3})+$)/g
var res = str.replace(reg,',')
console.log(res) // 123,456,789
1.2 遍历分隔
转换为数组,反转数组,三位添加一个逗号,反转数组,转换为字符串输出。
function solve(arr) {