广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-07 07:49:08 次阅读 稿源:互联网
    零七广告
    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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告