数字格式化千分位1234567890 转 1,234,567,890
1、while循环
<template><div>{{ num | formatNum }}</div>
</template><script>export default {data() {return {num: '1234567890'}},filters: {formatNum(arg) {let count = arg.lengthlet arr = []while (count >= 3) {arr.unshift(arg.slice(count - 3, count))count -= 3}// 如果是不是3的倍数就另外追加到上去arg.length % 3 && arr.unshift(arg.slice(0, arg.length % 3))return arr.toString()}}}
</script>
2、reduce()
<template><div>{{ num | formatNum }}</div>
</template><script>export default {data() {return {num: '1234567890'}},filters: {formatNum(arg) {return arg.split('').reverse().reduce((prev, next, index) => {return ((index % 3) ? next : (next + ',')) + prev})}}}
</script>
3、 正则表达式
<template><div>{{ num | formatNum }}</div>
</template><script>export default {data() {return {num: '1234567890'}},filters: {formatNum(arg) {return arg.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}}
</script>
4、toLocaleString()
<template><div>{{ (num * 1).toLocaleString() }}</div>
</template><script>export default {data() {return {num: '1234567890'}}}
</script>