把一串数字按照n用逗号分隔

最近做了一个js项目,需要把数字按照每三位,就用一个逗号分隔,做完后,我就想,这个算法也可以支持用户自定义的位数,进行分隔,就是用到了RegExp这个方法来拼接字符串,使其具有动态分隔的功能。

上代码:

function numberDivid(number,n){
		var n = n || 3;//设置默认值
		var reg = new RegExp("(\\d+)"+"(\\d{"+n+"})");//字符串拼接,把n带入正则表达式
		numberString = number.toString();//把字符串转化成数组
		numberArry = numberString.split(".");//小数点前面的数字进行分隔
		number1 = numberArry[0];
		number2 = numberArry.length > 1 ? "." + numberArry1 : "";
		while(reg.test(number1)){
			number1 = number1.replace(reg,"$1" + "," + "$2"); //这里$1,$2是正则匹配到的对象
		}
		return number1 + number2;

总体看起来,代码最优的地方,就是设置了一个可以支持用户随心所欲操作的分隔位数,其他的代码就是一般性。

时间: 2024-10-14 21:56:09

把一串数字按照n用逗号分隔的相关文章

C 输入一串数字,去掉其中含7的和能被7整除的数

C 输入一串数字,去掉其中含7的和能被7整除的数,每个数小于10000,数字个数小于100 输入例子:1,7,56,77,87,2,45,42,97,9977 输出:1,2,45 注意:输入个数不确定,所以不能够用整形数组处理,不能以判断整形数组元素是否等于\n为结束,因为数组是整形的,\n是字符型的,是输入不进去的 所以要用字符串来处理,先把用逗号相隔的所有整数取出来,然后再对这些数进行判断输出 #include<stdio.h> #include<string.h> void

一串数字中有两个只出现一次的数字其余都是成对相同,求这两个数

当然如果这个问题是只有一个不同的数,其他数字成对相同,那么就是把所有数字异或就得出这个数了 这次是有两个只出现一次的数字,其他数字都成对相同 1)先把所有数都异或得到数t 2)算出t的二进制第一个1的位置flag 3)将所有数根据二进制flag位置是否为1分成两组b1[],b2[] (此时每组数字的个数一定是奇数) 4)将b1组异或得到ans1,将b2组异或得到ans2 #include<iostream> #include<stdio.h> using namespace std

美女程序员是如何将QQ转换成题目中那串数字的--读博文《找女神要QQ号码》

我只能说好好的端午节你们不约么?,还在这里写代码?我也是够无聊的,下班了不走也在这跟风写着玩!<找女生要QQ号码原文>原文链接http://www.cnblogs.com/iforever/p/4584490.html 题目:给了一串数字(631758924不是QQ号码),根据下面规则可以找出QQ号码:首先删除第一个数,紧接着将第二个数放到这串数字的末尾,再将第三个数删除,并将第四个数放到这串数字的末尾......如此循环,知道剩下最后一个数,将最后一个数也删除,按照刚才删除的顺序,把这些数字

C 输入一串数字,去掉当中含7的和能被7整除的数

C 输入一串数字,去掉当中含7的和能被7整除的数,每一个数小于10000,数字个数小于100 输入样例:1,7,56,77,87,2,45,42,97,9977 输出:1,2,45 注意:输入个数不确定.所以不可以用整形数组处理.不能以推断整形数组元素是否等于\n为结束,由于数组是整形的.\n是字符型的,是输入不进去的 所以要用字符串来处理,先把用逗号相隔的全部整数取出来,然后再对这些数进行推断输出 #include<stdio.h> #include<string.h> void

ACM找出一串数字是否能被分成两部分使其中一部分全部为负数,加上另一部分可以为0

Description Most financial institutions had become insolvent during financial crisis and went bankrupt or were bought by larger institutions, usually by banks. By the end of financial crisis of all the financial institutions only two banks still cont

golang获取一串数字中与给定数最接近的数字

今天需要写一个算法,获取一串数字中与给定数最接近的数字,代码如下 package main import ( "fmt" ) func main(){ arr:=[]int{12,16,29,34,39,43,55,64,71,89,90,9} zuijin:=get_zuijin(40,arr) fmt.Println(zuijin) } func get_zuijin(this int,arr []int) int{ min:=0 if this==arr[0]{ return a

甲乙用同一串数字玩游戏

甲乙用同一串数字玩游戏,一共15个,一开始这些数不是严格升序的,甲去掉一个数据,如果严格升序了,甲胜利,否则由乙继续去掉一个数据,如果严格升序了,乙胜利,否则再由甲删除数据,如此往复.通过15个初始数据,判断甲胜还是乙胜. #include<iostream> #include<list> using namespace std; bool sup(list<int> &l)//判断是否严格升序 { if(l.size() == 1) { return true

Oracle时间一串数字转为日期格式

一.前台处理 js中接收到后台返回的json字符串中的日期类型的字段都变成了一串数字,例如:1500341149000.所以我们需要将这个串格式化形如:2017-07-18 09:25:49. 1.首先在js中加入格式化函数 //封装转换函数 Date.prototype.Format = function(fmt) { //author:wangweizhen var o = { "M+" : this.getMonth()+1, //月份 "d+" : this

把一串数字表示成千位分隔形式——JS正则表达式的应用

梳理思路 要先明白的是,我们将要转换成的数字格式是这样:从个位往左数起,每三位前插入一个千位分隔符,,即可以想象成我们要把每三位数字前面的那个空""匹配出来,并替换成千位分隔符,.每个千位分隔符后面的数字个数是3个或3的倍数个. 代码书写 创建一个正则表达式字面量,并加上全局匹配修饰符g.var reg = //g; W3C对全局匹配的解释是:查找所有匹配而非在找到第一个匹配后停止. 因为需要从右往左匹配,所以表示结尾的$是必须要有的.三位数字用\d{3}来表示,由于我们不知道究竟有多