JS如何将数字类型转化为没3个一个逗号的金钱格式


Posted in Javascript onJanuary 27, 2014

3345687687876789123

转化为:xxx,xxx,xxx

<script type="text/javascript"> window.onload = function(){ 
//整个测试由小刀提供 
var testFun = function( callback, str ){ 
var tipElem = document.createElement( 'div' ), 
startTime, 
duration = 0; 
for( var j = 5; j > 0; j-- ){ 
startTime = +new Date(); 
for( var i = 10000; i > 0; i-- ){ 
callback(); 
} 
duration = ((+new Date()) - startTime) + duration; 
} 
duration = (duration / 5).toFixed(0); 
tipElem.innerHTML = str + '总耗时:' + duration + ' ms'; 
document.body.appendChild( tipElem ); 
}; 
var str = '3345687687876789123'; 
var cuter1 = function( str ){//带刀 
var len = str.length, 
lastIndex, 
arr = []; 
while( len > 0 ){ 
lastIndex = len; 
len -= 3; 
arr.unshift( str.substring(len, lastIndex) ); 
} 
return arr.join(','); 
}; 

var cuter2 = function( str ){//abcd 
return str.replace( /\B(?=(?:\d{3})+$)/g, ',' ); 
}; 
var cuter3 = function( str ){//前叔 
return str.replace(/(.*)(\d{3})$/,function(){ 
if(arguments[1]&& arguments[2]){ 
return arguments[1].replace(/(.*)(\d{3})$/,arguments.callee)+","+arguments[2]; 
} else { 
return arguments[0]; 
} 
}); 
}; 

var cuter4 = function( str ){//Alucelx 
return str.split('').reverse().join('').replace(/(\d{3})/g, '$1,').split('').reverse().join(''); 
}; 
var cuter5 = function( str ){//司徒正美 
var ret = []; 
while(str){ 
str = str.replace(/\d{1,3}$/g,function(a){ 
ret.unshift(a) 
return "" 
}); 
} 
return ret.join(","); 
}; 
var cuter6 = function( str ){//司徒正美 
var n = str.length % 3; 
if(n){ 
return str.slice(0,n) + str.slice(n).replace(/(\d{3})/g,',$1') 
}else{ 
return str.replace(/(\d{3})/g,',$1').slice(1) 
} 
}; 
var cuter7 = function(str){//司徒正美 
var ret = "" 
for(var i = 0, n = str.length, m = n %3 - 1; i < n; i++){ 
ret += str.charAt(i) 
if( i % 3 === m ){ 
ret += "," 
} 
} 
var e = ret.length - 1 
return ret.charAt(e) == "," ? ret.slice(0,e) : ret 
} 
var cuter8 = function(str){//[[valueOf]] 
var s2 = [].slice.call(str); 
for(var i=s2.length-3; i>0;i-=3){ 
s2.splice(i, 0 ,',' ); 
} 
return s2.join("") 
} 
var cuter9 = function(str){//听说 
var newStr= new Array(str.length+ parseInt(str.length/3)); 
newStr[newStr.length-1]=str[str.length-1]; 
var currentIndex=str.length-1; 
for(var i = newStr.length-1;i >= 0;i--) { 
if((newStr.length-i)%4==0) 
{ 
newStr[i]=","; 
}else{ 
newStr[i]=str[currentIndex--]; 
} 
} 
return newStr.join("") 
} 
var cuter10 = function(str){//Rekey 
var len = str.length, str2 = '', max = Math.floor(len / 3); 
for(var i = 0 ; i < max ; i++){ 
var s = str.slice(len - 3, len); 
str = str.substr(0, len - 3); 
str2 = (',' + s) + str2; 
len = str.length; 
} 
str += str2; 
return str 
} 
//下面是性能测试 
testFun(function(){ 
cuter1(str); 
}, '方法一' ); 

testFun(function(){ 
cuter2(str); 
}, '方法二' ); 

testFun(function(){ 
cuter3(str); 
}, '方法三' ); 

testFun(function(){ 
cuter4(str); 
}, '方法四' ); 

testFun(function(){ 
cuter5(str); 
}, '方法五' ); 
testFun(function(){ 
cuter6(str); 
}, '方法六' ); 
testFun(function(){ 
cuter7(str); 
}, '方法七' ); 
testFun(function(){ 
cuter8(str); 
}, '方法八' ); 
testFun(function(){ 
cuter9(str); 
}, '方法九' ); 
testFun(function(){ 
cuter10(str); 
}, '方法十' ); 
} 
</script>

新能测试的结果为:
方法一总耗时:14 ms 
方法二总耗时:9 ms 
方法三总耗时:174 ms 
方法四总耗时:34 ms 
方法五总耗时:39 ms 
方法六总耗时:7 ms 
方法七总耗时:9 ms 
方法八总耗时:30 ms 
方法九总耗时:14 ms 
方法十总耗时:4 ms
Javascript 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
js控制table合并具体实现
Feb 20 Javascript
控制台报错object is not a function的解决方法
Aug 24 Javascript
jQuery+CSS3实现树叶飘落特效
Feb 01 Javascript
JS+CSS实现闪烁字体效果代码
Apr 05 Javascript
javascript Function函数理解与实战
Dec 01 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
Jan 10 Javascript
微信小程序实现自动定位功能
Oct 31 Javascript
axios+Vue实现上传文件显示进度功能
Apr 14 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
关于vue里页面的缓存详解
Nov 04 Javascript
在Vue中使用HOC模式的实现
Aug 23 Javascript
FF IE浏览器修改标签透明度的方法
Jan 27 #Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
Jan 27 #Javascript
javascript动态添加、修改、删除对象的属性与方法详解
Jan 27 #Javascript
javascript中定义私有方法说明(private method)
Jan 27 #Javascript
用javascript替换URL中的参数值示例代码
Jan 27 #Javascript
jquery选择器之基本过滤选择器详解
Jan 27 #Javascript
jquery选择器之层级过滤选择器详解
Jan 27 #Javascript
You might like
php上传图片存入数据库示例分享
2014/03/11 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
js微信支付实现代码
2016/12/22 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
python使用str &amp; repr转换字符串
2016/10/13 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
python绘制简单彩虹图
2018/11/19 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
毕业生个人的求职信范文
2013/12/03 职场文书
小学生自我评价范文
2014/01/25 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
学前教育专业求职信
2014/09/02 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
奔腾年代观后感
2015/06/09 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
微信小程序调用python模型
2022/04/21 Python
MySQL 语句执行顺序举例解析
2022/06/05 MySQL