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

今日知识分享js分割函数

3年前 (2023-05-27)知识分享120

在项目开发中需要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分割函数” 的相关文章

溜肩和正常肩的区别图片(溜肩怎么矫正)

溜肩和正常肩的区别图片(溜肩怎么矫正)

之前的视频《这些动作溜肩就别练了》发出去之后,我激动了好半天,我觉得——我终于把溜肩的动作本质告诉大家了,我终于圆满了! 但是却收到了不少这样的评论: 也没说怎么练啊; 说了跟没说一样; 为了显摆自己专业说了一堆废话; …… (小红...

沧州市属于哪个省(山东沧州市属于什么城市)

沧州市属于哪个省(山东沧州市属于什么城市)

在之前的文章中,作者和大家聊了一系列关于我国河北省各个城市区划形成的故事,例如石家庄市、保定市、邯郸市等等。今天,我们聊聊河北省的沧州市,沧州市经济发达、人口众多,属于河北省的第三 在之前的文章中,作者和大家聊了一系列关于我国河北省各个城市区划形成的故事,例如石家庄市、保定市、邯郸市等等。今天...

淘宝流量提升(如何让淘宝店铺有流量)

淘宝流量提升(如何让淘宝店铺有流量)

我们都知道,流量是电商的命脉,没有流量的淘宝店铺就相当于没有人流的超市。产品再多,也无人购买,也更没有销售额的产生。正是因为如此,流量是我们卖家一直所追求的,只有有了流量我们的店铺 我们都知道,流量是电商的命脉,没有流量的淘宝店铺就相当于没有人流的超市。产品再多,也无人购买,也更没有销售额的产生。...

广陵是现在江苏省的哪个地方(扬州为什么叫广陵)

广陵是现在江苏省的哪个地方(扬州为什么叫广陵)

有人说扬州属于经济强的苏南,更多人说属于经济弱的苏北。如果以长江而论,当然属于苏北。但争来争去终于给扬州,甚至泰州、南通等地。找到一个当地人感觉有面子而苏北苏南地域人们又都认可的说 有人说扬州属于经济强的苏南,更多人说属于经济弱的苏北。如果以长江而论,当然属于苏北。但争来争去终于给扬州,甚至泰州、...

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

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

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

2022年寒衣节的禁忌可信吗(寒衣节不宜做什么)

2022年寒衣节的禁忌可信吗(寒衣节不宜做什么)

十月初一送寒衣是很多北方地区都有的习俗,但由于该节日作为四大鬼节之一,所以很多讲究都会出现在我们生活中,那么2022年寒衣节的禁忌可信吗成了很多人都有的疑问,下面小编就和大家一起看看。2022年寒衣节的禁忌可信吗见仁见智 十月初一送寒衣是很多北方地区都有的习俗,但由于该节日作为四大鬼节之一,所以很...

农历十月初一是阳历的哪一天(十月初一节日什么意义)

农历十月初一是阳历的哪一天(十月初一节日什么意义)

寒衣节是很多北方地区都有的风俗习惯,但由于该节日并不是按照阳历来讲的而是按照阴历,所以农历十月初一是阳历的哪一天成了很多人都好奇的,下面小编就和大家一起看看十月初一节日什么意义。农历十月初一是阳历的哪一天农历十月初一是1 寒衣节是很多北方地区都有的风俗习惯,但由于该节日并不是按照阳历来讲的而是按照...

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

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

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

2022年12月30日入宅吉利吗(12月适合入宅新居的日子有哪些)

2022年12月30日入宅吉利吗(12月适合入宅新居的日子有哪些)

2022年12月30日入宅吉利吗是大家常问的,虽说搬家入宅和结婚相比甚是渺小,但是呢为了讨个吉利大家每每入宅的时候不仅会选个良辰吉日进行,而且还会有各种的习俗,下面小编就和大家一起看看11月23日乔迁入宅哪些是要注意的 2022年12月30日入宅吉利吗 是大家常问的,虽说搬家入宅和结婚相比甚是渺小...

2022年寒衣节允许十字路口烧纸吗(寒衣节十字路口烧纸晚上几点合适)

2022年寒衣节允许十字路口烧纸吗(寒衣节十字路口烧纸晚上几点合适)

寒衣节是很多北方地区都有的风俗习惯,但由于一些在外地上班的人无法回家为亲人烧纸,所以十字路口便成了很多友友都会去烧纸的地点,下面小编就和大家一起看看2022年寒衣节允许十字路口烧纸吗。2022年寒衣节允许十字路口烧纸吗看 寒衣节是很多北方地区都有的风俗习惯,但由于一些在外地上班的人无法回家为亲人烧...

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

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

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

嘴唇长了疱疹还越来越肿怎么办(嘴唇疱疹嘴唇肿大多久会消肿)

嘴唇长了疱疹还越来越肿怎么办(嘴唇疱疹嘴唇肿大多久会消肿)

嘴唇长了疱疹是需要用药物涂抹治疗的,不管它的话就会好的比较慢,严重点的会引起嘴唇或者牙龈肿大,有的时候半边脸都是疼的。那么,嘴唇疱疹嘴唇肿大多久会消肿?一起来看看久久派带来的详细介绍吧!嘴唇长了疱疹还越来越肿怎么办患者 嘴唇长了疱疹是需要用药物涂抹治疗的,不管它的话就会好的比较慢,严重点的会引起嘴...

2023年国庆节和中秋节一共放多少天(2023年国庆中秋放假几天)

2023年国庆节和中秋节一共放多少天(2023年国庆中秋放假几天)

国庆节和中秋节都是生活中比较特别的两个节日,也是我国的法定节假日,它们都会放假休息,在2023年,中秋节是在9月29日,正好和国庆节凑到一起了,这样国庆节和中秋节可能会一起放假9天,也可能会放假8天,具体看相关放假安排通 国庆节和中秋节都是生活中比较特别的两个节日,也是我国的法定节假日,它们都会放...

压岁钱可以拿到几岁(​压岁钱多大不能拿了)

压岁钱可以拿到几岁(​压岁钱多大不能拿了)

对于小孩子来讲一年中最为喜爱的节日除了寒暑假就是春节了,毕竟过年长辈给的压岁钱可以说是一笔不小的收入了,但由于压岁钱也有个上限,所以压岁钱可以拿到几岁成了孩子们比较关心的,下面小编就和大家一起看看压岁钱多大不能拿了。压岁 对于小孩子来讲一年中最为喜爱的节日除了寒暑假就是春节了,毕竟过年长辈给的压岁...

轻颜相机xsmax原相机模式在哪(轻颜相机xsmax原相机模式为什么没有)

轻颜相机xsmax原相机模式在哪(轻颜相机xsmax原相机模式为什么没有)

很多网友表示iPhonexsmax原相机拍照模式可以吊打所以系列,很多人把xsmax留着也只是为了拍照。目前,轻颜相机更新了xsmax原相机模式,大家可以直接在里面寻找并进行拍照哦!轻颜相机xsmax原相机模式在哪1、当 很多网友表示iPhonexsmax原相机拍照模式可以吊打所以系列,很多人把x...