const val = ['12', '123', '1234', '12345', '123456', '1234567', '1234442313123'] const reg = /(?<=\d)(?=(\d{4})+(?!\d))/g let res = '' val.forEach(i => { const num = i.replace(reg, ',') res += `${num}` res += ' ' }) console.log(res) >>> 12 123 1234 1,2345 12,3456 123,4567 1,2344,4231,3123
const val = ['12', '123', '1234', '12345', '123456', '1234567', '1234442313123'] const reg = /(?<=\d)(?=(\d{3})+(?!\d))/g let res = '' val.forEach(i => { const num = i.replace(reg, ',') res += `${num}` res += ' ' }) console.log(res) >>> 12 123 1,234 12,345 123,456 1,234,567 1,234,442,313,123
const reg = /(?<=\d)(?=(\d{3})+(?!\d))/g 解释
因为只匹配位置, 不能改变原来的数值,所以正则用的都是前瞻运算符
中间的(?=(\d{3})+ 表示后面的数字, 每三个为一组, 前面的(?<=\d)
表示前面出现的一定是数字,相当于去掉 ,123,345的情况,
结尾出现的 (?!\d) 表示匹配的(三个三个的数字分组的)结尾不能是数字
前面是数字, 中间是3位一组的数字组,结尾不能是数字
标签:12,const,res,javascript,num,逗号,正则,123,reg From: https://www.cnblogs.com/fmg0224/p/18463678