javascript逗号添加函数

javascript数字添加逗号函数


方法一

function CommaFormatted(amount){
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)//把接收到的参数按照.分割成两部分。如果如果没有逗号 a.length =1
	//var d = a[1];//保留小数点后面的数字
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }  //判断是否是数字
	var minus = '';
	if(i < 0) { minus = '-'; }    //如果是负数,minus设置 "-" (负号),正数,设置成""(空字符串) 
	i = Math.abs(i);              //取绝对值
	var n = new String(i);        //新建一个字符串i
	var array = [];                   //新建一个数组
	
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);//substr从起始位置到结尾的字符串,即最后三个字符
		array.unshift(nn);//unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
		n = n.substr(0,n.length-3);//字符串n值保留起始到原来的长度leagth-3的地方(删除了后三个)
	}
	
	if(n.length > 0) { array.unshift(n); }//如果字符串n还有字符直接加到a里面
	n = array.join(delimiter);//join() 方法用于把数组中的所有元素放入一个字符串。
	
	if(a.length == 1) { amount = n; }  //如果没有小数点amount=n
	else { amount = n + '.' + a[1]; } //如果有小数点amount = n+"小数点后数字"
	
	amount = minus + amount;//
	return amount;
}
// end of function CommaFormatted()

 方法二

function addCommas(nStr){
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

说明,网上找的,修改了一个错误地方,加上了,注释,至于,这两个两个效率更高就不知道了

理论上你方法写的好的话,效率应该会比正则表达式高。  未验证。。。

原文地址:https://www.cnblogs.com/xy2401/p/2800828.html