手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS如何将数字类型转化为没3个一个逗号的金钱格式
JS如何将数字类型转化为没3个一个逗号的金钱格式
摘要:3345687687876789123转化为:xxx,xxx,xxx复制代码代码如下:window.onload=function(){//...

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

【JS如何将数字类型转化为没3个一个逗号的金钱格式】相关文章:

体验jQuery和AngularJS的不同点及AngularJS的迷人之处

javascript事件冒泡和事件捕获详解

javascript实现简单的进度条

jQuery插件制作之参数用法实例分析

JS中Eval解析JSON字符串的一个小问题

如何控制框架页的滚动

JavaScript中操作字符串小结

Jquery zTree 树控件异步加载操作

javascript实现点击后变换按钮显示文字的方法

如何取得中文输入的真实长度?

精品推荐
分类导航