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; }
说明,网上找的,修改了一个错误地方,加上了,注释,至于,这两个两个效率更高就不知道了
理论上你方法写的好的话,效率应该会比正则表达式高。 未验证。。。