当前位置:首页 > 知识分享 > 正文内容

今日知识分享js分割函数

2年前 (2023-05-27)知识分享59

在项目开发中需要js实现千位分隔符来分割一个整数,比如我想将数字 1234567 显示为“1,234,567”。我该怎么实现呢?

方法一、利用循环

实现思路是将数字转换为字符数组,再循环整个数组, 每三位添加一个分隔逗号,最后再合并成字符串。

function numberWithCommas(x) {

    x = x.toString();

    var pattern = /(-?\d+)(\d{3})/;

    while (pattern.test(x))

        x = x.replace(pattern, "$1,$2");

    return x;

}

numberWithCommas(12312124545);//'12,312,124,545'

numberWithCommas(123121245.45);//'123,121,245.45'

方法二、toLocaleString

Number.prototype.toLocaleString。它是在 JavaScript 1.5(于 1999 年推出)中实现的,因此基本上所有主要浏览器都支持它。

var num = 12345.1234

num.toLocaleString();//'12,345.123'

注意的是这个函数在没有指定区域的基本使用时,返回使用默认的语言环境和默认选项格式化的字符串,所以不同地区数字格式可能会有一定的差异。最好确保使用 locales 参数指定了使用的语言。

注:我测试的环境下小数部分会根据四舍五入只留下三位。比如:

var b=1234.4542;

b.toLocaleString();//'1,234.454'

方法三、正则表达式和replace函数

使用正则表达式和replace函数,相对前两种我更喜欢这种方法,虽然正则有点难以理解。

function numberWithCommas(x) {

    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

}

正则表达式使用 2 个前瞻断言:

  • 一个正数,用于在字符串中查找其后连续 3 位数字的任何点,
  • 一个否定断言,以确保该点只有 3 位数字的倍数。替换表达式在那里放置一个逗号。

注意:这个函数如果小数点后有超过3位数字的话,会在不需要的地方添加逗号。如果这是一个问题,您可以使用此功能。

function numberWithCommas(x) {

    var parts = x.toString().split(".");

    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");

    return parts.join(".");

}

更简洁,最终代码:

function numberWithCommas(x) {

    return x.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");

}

方法四:Intl.NumberFormat

原生js功能。支持 IE11、Edge、最新的 Safari、Chrome、Firefox、Opera、iOS 上的 Safari 和 Android 上的 Chrome。

可以把普通的数字,转换成不同的货币和格式样式字符串。

let number = 1234567890;

let nf = new Intl.NumberFormat('en-US');

nf.format(number); // "1,234,567,890"

更多实例:


var number = 123456.789;

console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number));
// expected output: "123.456,79 €"

// the Japanese yen doesn't use a minor unit
console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(number));
// expected output: "¥123,457"

// limit to three significant digits
console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(number));

// expected output: "1,23,000"

扫描二维码推送至手机访问。

版权声明:本文由阿龙玩站网发布,如需转载请注明出处。

本文链接:https://www.longge2021.cn/zhideyikan/26314.html

分享给朋友:

“今日知识分享js分割函数” 的相关文章

推荐几个三四五线小城市可操作性的项目

推荐几个三四五线小城市可操作性的项目

因为比较受到环境限制,所以小城市可落地的项目真的不是很多,你会发现,小城市,人流基本都聚集在学校附近,或者景区附近,或者儿童游乐场,这些地方,并且大多数的孩子是由爷爷奶奶来照顾的,所以消费能力基本比较有限制,所以能落地的,就会较少了。 看市场 前面我们有说到过,小城市,基本都是爷爷奶奶在照顾...

完整的策划案模版(问卷调查策划案怎么写)

完整的策划案模版(问卷调查策划案怎么写)

我概括了几点:一、主题,可以是主题加副标题介绍或者单独主题,二、目录,将整个方案的内容整理为几个板块作为目录,三、概况,包括背景、时间要求、排期设置以及活动亮点等,让客户看完概括能明白这个活动是在做什么,有哪些板块和内容,四、设置,表明活动的所有规则、制度,设置了哪些玩法,为什么设置这样的玩...

转转OPPO A5销量冲进Top10(oppo a5手机配置参数)

转转OPPO A5销量冲进Top10(oppo a5手机配置参数)

你能相信,4年前发布的OPPO A5,在二手市场依旧是“神”一样的存在吗? 近日,转转集团发布的Q1手机行情报告显示,OPPO A5在二手市场继续续写销量神话,单机销量堪称“国产之光”。 对此,转转集团数据部的分析师认为,这不仅与OPPO A5本身的续航、颜值有关,还和OPPO...

企业是如何打造seo推广团队的(企业打造seo推广团队从以下几个方面考虑)

企业是如何打造seo推广团队的(企业打造seo推广团队从以下几个方面考虑)

企业主还没理解网络推广搭建概念吗?好比如高速公路需要搭建出来,才能通车收高速费,车才能快速通过吧。而企业主刚接触网络推广时,是如何计划打造seo网络推广团队的呢?先从这几个因素开 企业主还没理解网络推广搭建概念吗?好比如高速公路需要搭建出来,才能通车收高速费,车才能快速通过吧。 而企业主刚接触...

百度该如何做推广(百度做推广从以下两个方面入手)

百度该如何做推广(百度做推广从以下两个方面入手)

百度到目前为止拥有超过8亿万用户,是巨大的流量池,利用好它可以帮助广告主实现产品的变现和产品的转化。所以,我们一起来看下关于百度产品推广效果这方面的知识点吧。一、百度产品推   百度到目前为止拥有超过8亿万用户,是巨大的流量池,利用好它可以帮助广告主实现产品的变现和产品的转化。所以,我们一起来看下...

自媒体如何赚钱快(分享15种自媒体赚钱快的方法)

自媒体如何赚钱快(分享15种自媒体赚钱快的方法)

做自媒体一天收入相当于我一年工资了,走,做自媒体去。也是从这两次事件开始,自媒体火了。可是,两年过去了,99%的自媒体人还在苦苦探索盈利模式。做自媒体,收这样高级别的广告费,除了文 做自媒体一天收入相当于我一年工资了,走,做自媒体去。也是从这两次事件开始,自媒体火了。可是,两年过去了,99%的自媒...

武汉公积金利率下调了吗2022最新(武汉公积金利率下调原来贷款也下调吗)

武汉公积金利率下调了吗2022最新(武汉公积金利率下调原来贷款也下调吗)

武汉公积金利率下调至3.1%可以说是难得一见了,因为武汉公积金利率3.25%保持了很多年,如今下调后,每个月少还50元对个人来说也是一项不错的福利政策,原来在还房贷的朋友们需要等明年1月1日再正式执行。武汉公积金利率下调 武汉公积金利率下调至3.1%可以说是难得一见了,因为武汉公积金利率3.25%...

板栗用微波炉加热几分钟可以吃(板栗放微波炉里面加热要多久时间)

板栗用微波炉加热几分钟可以吃(板栗放微波炉里面加热要多久时间)

板栗是秋季比较常见的一种美食,它的吃法比较多,一般都会炒着吃或者烤着吃,还可以煮着吃或炖着吃等,板栗要趁热吃,冷了的板栗吃了不容易消化吸收,最好放微波炉里面加热三五分钟再吃。板栗用微波炉加热几分钟可以吃3-5分钟。微波炉 板栗是秋季比较常见的一种美食,它的吃法比较多,一般都会炒着吃或者烤着吃,还可...

爱国古诗词10首并写出作者和出处(爱国古诗30首)

爱国古诗词10首并写出作者和出处(爱国古诗30首)

爱国,是诗词中常见的主题。屈原、岳飞、辛弃疾、于谦……众多爱国诗人写就许多经典的爱国诗篇。今天,诗词君想分享35首经典的爱国诗词,让我们在诗词中,体会他们壮志豪情吧!《诗经·无衣》岂曰无衣?与子同袍。王于兴师,修我戈矛。 爱国,是诗词中常见的主题。 屈原、岳飞、辛弃疾、于谦……众多爱国诗人写就许...

2022寒露气温大概多少度(寒露温度大约是几度2022)

2022寒露气温大概多少度(寒露温度大约是几度2022)

寒露节气是一年之中比较特别的一个节气,一般是在每年十月初,这个时候的气温会慢慢下降,大多数地区不会出现高温天气了,开始进入秋天。根据相关信息显示,今年寒露节气的温度大概是20度左右,北方在10度左右。2022寒露温度大约 寒露节气是一年之中比较特别的一个节气,一般是在每年十月初,这个时候的气温会慢...

奥粒绒和摇粒绒一样吗(奥粒绒保暖效果怎么样)

奥粒绒和摇粒绒一样吗(奥粒绒保暖效果怎么样)

随着天气的变冷,很多友友都开始为自己置办加绒的衣服,而近期一种名为奥粒绒的面料便成了各大直播间的主推,不过由于该面料和之前的摇粒绒外观有一点点的相似,下面小编就和大家一起看看奥粒绒保暖效果怎么样。奥粒绒和摇粒绒一样吗奥粒 随着天气的变冷,很多友友都开始为自己置办加绒的衣服,而近期一种名为奥粒绒的面...

洗好的红薯能放到第二天蒸吗(洗了的红薯可以隔天蒸吗)

洗好的红薯能放到第二天蒸吗(洗了的红薯可以隔天蒸吗)

红薯含有丰富的维生素、矿物质以及膳食纤维等,适量食用对身体有一定的好处,很多人都会在家蒸红薯吃,蒸红薯一般都是要清洗干净的,洗干净的红薯最好尽快蒸熟吃,这样味道最美味,也可以放在第二天蒸,一般只要不去皮,都是可以隔天蒸煮 红薯含有丰富的维生素、矿物质以及膳食纤维等,适量食用对身体有一定的好处,很多...

2022冬至烧纸可以找人代烧吗(冬至烧纸不在家怎么烧)

2022冬至烧纸可以找人代烧吗(冬至烧纸不在家怎么烧)

冬至虽说只是个节气,但是很多地区这一天都是有祭祀的风俗习惯的,不过由于冬至多在工作日,所以冬至烧纸不在家怎么烧成了大家最为好奇的,下面小编就和大家一起看看冬至烧纸不在家怎么烧。2022冬至烧纸可以找人代烧吗看地方的习俗, 冬至虽说只是个节气,但是很多地区这一天都是有祭祀的风俗习惯的,不过由于冬至多...

海克斯科技食品有毒吗(海克斯科技食品能吃吗)

海克斯科技食品有毒吗(海克斯科技食品能吃吗)

海克斯科技食品是属于假冒食物,但一分价钱一分货,用低价格去买本身高价格的肥牛或者汤类,那大概率都是商家制作的海克斯科技食品。那么,海克斯科技食品有毒吗?一起来看看久久派带来的详细介绍吧!海克斯科技食品有毒吗没毒,但是不 海克斯科技食品是属于假冒食物,但一分价钱一分货,用低价格去买本身高价格的肥牛或...

西瓜有酸味正常吗(西瓜有酸味是不是放坏了)

西瓜有酸味正常吗(西瓜有酸味是不是放坏了)

西瓜是生活中比较常见的一种水果,它含有多种营养成分,味道香甜可口,果肉鲜嫩多汁,很多人都喜欢吃。有些人吃西瓜会发现西瓜有酸味,这种可能是没有完全成熟,也可能是坏掉变质了,要看具体情况而定。西瓜有酸味正常吗不正常。1.如果 西瓜是生活中比较常见的一种水果,它含有多种营养成分,味道香甜可口,果肉鲜嫩多...