当前位置: 首页 > news >正文

分享几种js格式化金额的方法

一、使用 Intl.NumberFormat 构造函数

这是 JavaScript 中格式化金额的最常见方法。Intl.NumberFormat()构造函数接受两个参数:语言环境和选项。语言环境是为其格式化金额的语言和地区。选项是一组控制金额格式的属性。例如,可以使用样式属性来指定货币的格式,使用货币属性来指定要将金额格式化为的货币。

const amount = 1234567.89;
const locale = "en-US";
const options = {style: "currency",currency: "USD",
};const formattedAmount = new Intl.NumberFormat(locale, options).format(amount);console.log(formattedAmount); //$1,234,567.89

二、使用 Number.prototype.toLocaleString 方法

要格式化金额,可以使用 JavaScript 的 toLocaleString() 方法。该方法可以将数字转换为本地化的字符串表示形式,并可以指定货币符号、小数点和千位分隔符等格式。

代码如下:

  1. 美元

    const amount = 1234567.89;
    const formattedAmount = amount.toLocaleString("en-US", {style: "currency",currency: "USD",minimumFractionDigits: 2,maximumFractionDigits: 2,
    });
    console.log(formattedAmount); //$1,234,567.89
    
  2. 人民币

    const amount = 1234567.89;
    const formattedAmount = amount.toLocaleString("zh-CN", {style: "currency",currency: "CNY",minimumFractionDigits: 2,maximumFractionDigits: 2,
    });
    console.log(formattedAmount);
    

在这个示例中,将数字变量 amount 使用 toLocaleString() 方法转换为本地化的字符串表示形式,并指定了以下格式:

  • style: 'currency' 表示使用货币格式显示金额。
  • currency: 'USD' 表示使用美元符号作为货币符号。
  • minimumFractionDigits: 2 表示最少保留两位小数。
  • maximumFractionDigits: 2 表示最多保留两位小数。

通过这种方式,可以使用 JavaScript 快速简单地实现金额格式化效果。需要注意的是,toLocaleString() 方法在不同的浏览器和操作系统中可能存在差异,需要进行兼容性测试和兼容性处理。

三、 使用模板字符串 + Number.prototype.toFixed + 正则替换

const amount = 1234567.89;
const formattedAmount = `¥${amount.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`;
console.log(formattedAmount);

在这个示例中,通过 toFixed 使金额保留两位小数,使用正则替换的方式增加千位分隔符,再使用模板字符串进行拼接。

http://www.lryc.cn/news/90173.html

相关文章:

  • 圣墟传说H5手工端搭建架设教程
  • 编程(40)----------单例模式
  • Java开发 - 让你少走弯路的Redis主从实现单节点哨兵模式
  • Java的Atomic原子类
  • 离线语音控制新方案,NRK3303语音识别芯片在智能风扇的应用
  • 在树莓派3B+上安装Pytorch1.7
  • Java性能权威指南-总结4
  • c语言全局变量和局部变量问题汇总
  • 14.3:给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中字典序最小的结果
  • C++ 项目实战:跨平台的文件与视频压缩解压工具的设计与实现
  • C和指针(二)数据
  • PyTorch基础学习(一)
  • chatgpt赋能python:Python代做:让您的网站更友好的SEO利器
  • 2022年都快结束了,还有人不会安卓录屏?在安卓上录制屏幕的的实现方式
  • px rem em rpx 区别 用法
  • 忆享聚焦|ChatGPT、AI、网络数字、游戏……近期热点资讯一览
  • [Daimayuan] 树(C++,动态规划,01背包方案数)
  • 如何选择源代码加密软件
  • TO-B类软件产品差异化
  • 设计模式之美-实战一(上):业务开发常用的基于贫血模型的MVC架构违背OOP吗?
  • ChatGPT如何训练自己的模型
  • springboot使用线程池的实际应用(一)
  • ESP-8266学习笔记
  • Java泛型简单的使用
  • 深度探索:Qt CMake工程编译后的自动打包策略
  • 2.7 编译型和解释型
  • 校园网自动登陆(河南科技学院)
  • C++11 override和final关键字
  • kafka的log存储解析
  • 4.文件系统