JS数字千分位格式化实现方法总结

接下来我将为大家详细讲解“JS数字千分位格式化实现方法总结”的完整攻略。

JS数字千分位格式化实现方法总结

在开发过程中,经常会遇到需要对数字进行千分位格式化的要求。下面是两种实现方法的总结。

方法一:正则表达式实现

正则表达式是一种能够匹配字符串的强有力的工具,我们可以通过正则表达式实现数字千分位格式化。下面是示例代码:

/**
 * 将数字格式化为千分位格式
 * @param {Number} num 需要格式化的数字
 * @param {Number} precision 小数点后保留的位数,默认值为2
 * @return {String} 格式化后的字符串
 */
function formatNumber(num, precision = 2) {
  // 判断num是否为数字
  if (isNaN(num)) {
    return "";
  }
  // 将num转换为字符串并获取整数部分
  let [integerPart, decimalPart = ""] = num.toString().split(".");
  // 对整数部分进行千分位格式化
  integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  // 对小数部分保留指定位数,并判断是否需要补0
  if (decimalPart && decimalPart.length > precision) {
    decimalPart = decimalPart.slice(0, precision);
  } else {
    decimalPart = decimalPart.padEnd(precision, "0");
  }
  // 返回格式化后的字符串
  return decimalPart ? `${integerPart}.${decimalPart}` : integerPart;
}

上述代码以一个名为formatNumber的函数为基础实现数字千分位格式化。先将数字转换为字符串并获取整数部分和小数部分,对整数部分进行正则表达式匹配并加上逗号,对小数部分进行保留指定位数的处理,最终返回格式化后的字符串。

下面是函数调用示例:

console.log(formatNumber(1000.34567));  // "1,000.35"
console.log(formatNumber(1234567.890123));  // "1,234,567.89"

方法二:数值处理实现

该方法不需要正则表达式,直接利用JS提供的toLocaleString函数实现数字千分位格式化。下面是示例代码:

/**
 * 将数字格式化为千分位格式
 * @param {Number} num 需要格式化的数字
 * @param {Number} precision 小数点后保留的位数,默认值为2
 * @return {String} 格式化后的字符串
 */
function formatNumber(num, precision = 2) {
  // 判断num是否为数字
  if (isNaN(num)) {
    return "";
  }
  // 对num进行千分位格式化
  return num.toLocaleString(undefined, { minimumFractionDigits: precision, maximumFractionDigits: precision });
}

上述代码以一个名为formatNumber的函数为基础实现数字千分位格式化。直接利用JS提供的toLocaleString函数实现数字千分位格式化,并指定小数点后需要保留的位数。

下面是函数调用示例:

console.log(formatNumber(1000.34567));  // "1,000.35"
console.log(formatNumber(1234567.890123));  // "1,234,567.89"

到此,我们就完成了“JS数字千分位格式化实现方法总结”的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS数字千分位格式化实现方法总结 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • ajax和jsonp跨域的原理本质详解

    针对“Ajax和JSONP跨域的原理本质”这一话题,我准备了以下的完整攻略。 一、同源策略 同源策略,是一种安全策略,它限制了一个源(域名、协议、端口)下的文档或脚本如何能与另一个源(域名、协议、端口)下的资源进行交互。 二、JSONP 跨域 JSONP是一种跨域的技术手段,发起JSONP请求时,服务器端返回指定格式的数据,并在响应中将需要返回的数据作为参数…

    JavaScript 2023年6月11日
    00
  • JavaScript Array.flat()函数用法解析

    JavaScript Array.flat()函数用法解析 Array.flat()是JavaScript中一个新的数组API,用于将嵌套数组“展平”,即从多维数组变成一维数组。本文将详细讲解Array.flat()函数的用法。 语法 let newArray = arr.flat(depth) arr:被展平的原数组。 depth(可选):表示展平的深度,…

    JavaScript 2023年5月27日
    00
  • JavaScript重复元素处理方法分析【统计个数、计算、去重复等】

    JavaScript重复元素处理方法分析【统计个数、计算、去重复等】 在JavaScript中,处理重复元素是常见的需求,本篇文章将分析几种处理重复元素的方法,包括统计个数、计算、去重复等。 统计个数 统计重复元素的个数是最常见的需求,以下是一些实现方法: 方法1:for循环+计数器 let arr = ["apple", "b…

    JavaScript 2023年5月28日
    00
  • asp.net javascript 文件无刷新上传实例代码第1/2页

    首先,该攻略讲解的是如何实现ASP.NET网页中的JavaScript文件无刷新上传功能。下面是该攻略的完整内容: 1. 确定需求 在开始编写代码之前,我们需要先确定需求,也就是我们所要实现的功能,具体如下: 实现文件上传功能,可以上传任意格式的文件。 不刷新页面。 实现进度提示。 2. 编写前端代码 我们可以通过前端页面来实现文件上传的功能。代码可以使用H…

    JavaScript 2023年6月11日
    00
  • 让人蛋疼的JavaScript语法特性

    当我们熟悉JavaScript语法后,我们可能会遇到一些令人蛋疼的特性。这些特性可能会造成一些奇怪的现象,因此,在编写JavaScript代码时,我们需要格外小心以避免这些特殊情况。以下是一些常见的让人蛋疼的JavaScript语法特性。 隐式类型转换 JavaScript是一种动态类型的语言,因此,强制类型转换是一种必需的功能。但是,有些情况下JavaSc…

    JavaScript 2023年5月27日
    00
  • 如何在JavaScript中等分数组的实现

    要在JavaScript中实现将一个数组等分成n个子数组的过程,可以按照以下步骤进行: 设置一个函数,用于等分数组 首先,我们需要设置一个函数,用于将原始数组等分成n个子数组。该函数可以设置两个参数,分别是原始数组和要分成的子数组的个数。 function splitArrayIntoChunks(array, chunks) { // 在此处添加代码 } …

    JavaScript 2023年5月27日
    00
  • js判断文件格式及大小的简单实例(必看)

    正如该文章标题所示,该篇文章提供的是一个关于使用JavaScript来判断文件格式及大小的简单实例。文章主要分为两个部分:判断文件格式和判断文件大小。 判断文件格式 如果想要判断一个文件的格式,一般可以通过文件的后缀名来进行判断。比如说,通常”jpeg”后缀的文件都是jpg格式,”png”后缀的文件都是png格式,等等。 下面我们来看一下代码示例: func…

    JavaScript 2023年5月27日
    00
  • 详解vue中router-link标签所必备了解的属性

    下面我来详细讲解“详解vue中router-link标签所必备了解的属性”。 什么是router-link标签 在Vue中,使用router-link标签可以实现页面的跳转。router-link标签是Vue Router提供的一个组件,它通过Vue Router中的路由规则来控制页面跳转。 router-link标签的必备属性 在使用router-link…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部