Vue千分位分隔符 和 千分位分隔符保留两位小数

1.千分位分割符

建一个js文件,例如 filter.js

复制代码
export const formatMoney = (number, decimals = 0, decPoint = '.', thousandsSep = ',') => {
  number = (number + "").replace(/[^0-9+-Ee.]/g, "")
  let n = !isFinite(+number) ? 0 : +number
  let prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
  let sep = (typeof thousandsSep === "undefined") ? "," : thousandsSep
  let dec = (typeof decPoint === "undefined") ? "." : decPoint
  let s = ""
  let toFixedFix = function (n, prec) {
    let k = Math.pow(10, prec)
    return "" + Math.ceil(n * k) / k
  }
  s = (prec ? toFixedFix(n, prec) : "" + Math.round(n)).split(".")
  let re = /(-?\d+)(\d{3})/
  while (re.test(s[0])) {
    s[0] = s[0].replace(re, "$1" + sep + "$2")
  }
  if ((s[1] || "").length < prec) {
    s[1] = s[1] || ""
    s[1] += new Array(prec - s[1].length + 1).join("0")
  }
  return s.join(dec)
}
复制代码

在Vue文件中可直接引用

util只是文件夹

import { formatMoney } from '@/util/filters';
filters: { formatMoney},

 

2.千位分隔符+保留两位小数

  • 主要是正则验证 
  • 不好的一点是每个需要一次,写一次
  • 因为toFixed( 2 ) 不是函数,所以在Vue中用toFixed( 2 )时,要用number,即Number( ).toFixed( 2 )

 

复制代码
 <el-table-column
        align="center"
        label="订单金额"
        prop="ord_amount"
        style="width: 10%"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope" align="center">
          ${{
            Number(scope.row.ord_amount)
              .toFixed(2)
              .toString()
              .replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, "$1,")
          }}
        </template>
      </el-table-column>
复制代码

 

posted @   小兔儿_乖乖  阅读(5069)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示