使用正则表达式
纯整数
let miliFormat = (num) => {
return num && num.toString().replace(/(?=(?!^)(\d{3})+$)/g, ',');
}
正则表达式解释
?= 匹配子表达式之前
?! 不匹配子表达式 ^起始位置
\d 所有数字 {n}匹配n次 \d{3} 数字匹配3次
+前面的表达式匹配一次或多次
$匹配到结尾
/g全局匹配
全局匹配执行一次以上3n个数字不匹配起始位置的后面
带小数点的
匹配到小数点之前用纯整数的方法替换
let miliFormat = (num) => {
return num && num
.toString()
.replace(/^\d+/, (m) => m.replace(/(?=(?!^)(\d{3})+$)/g, ','))
}
^\d+ 从开头匹配数字一次以上直至第一个非数字
其中带空格或带其它字符串的,看下面链接吧。用正则我也看不懂。空格可以用trim(),带其它字符串可以先判断是不是数字return obj === +obj;
千位符参考
https://www.tuicool.com/articles/ArQZfui
正则表达式参考
https://www.cnblogs.com/lwming/p/10943193.html