如何添加逗号或空格以分组每个第三个数字

时间:2016-10-14 05:56:07

标签: jquery

我正在将numscroller jquery插件实现到我的程序中。但是,我无法添加逗号或空格以便对每三位数进行分组。

这是我的代码:

(function($){
$(window).on("load",function(){
    $(document).scrollzipInit();
    $(document).rollerInit();
});
$(window).on("load scroll resize", function(){
    $('.numscroller').scrollzip({
        showFunction    :   function() {
                                numberRoller($(this).attr('data-slno'));
                            },
        wholeVisible    :     false,
    });
});
$.fn.scrollzipInit=function(){
    $('body').prepend("<div style='position:fixed;top:0px;left:0px;width:0;height:0;' id='scrollzipPoint'></div>" );
};
$.fn.rollerInit=function(){
    var i=0;
    $('.numscroller').each(function() {
        i++;
       $(this).attr('data-slno',i); 
       $(this).addClass("roller-title-number-"+i);
    });        
};
$.fn.scrollzip = function(options){
    var settings = $.extend({
        showFunction    : null,
        hideFunction    : null,
        showShift       : 0,
        wholeVisible    : false,
        hideShift       : 0,
    }, options);
    return this.each(function(i,obj){
        $(this).addClass('scrollzip');
        if ( $.isFunction( settings.showFunction ) ){
            if(
                !$(this).hasClass('isShown')&&
                ($(window).outerHeight()+$('#scrollzipPoint').offset().top-settings.showShift)>($(this).offset().top+((settings.wholeVisible)?$(this).outerHeight():0))&&
                ($('#scrollzipPoint').offset().top+((settings.wholeVisible)?$(this).outerHeight():0))<($(this).outerHeight()+$(this).offset().top-settings.showShift)
            ){
                $(this).addClass('isShown');
                settings.showFunction.call( this );
            }
        }
        if ( $.isFunction( settings.hideFunction ) ){
            if(
                $(this).hasClass('isShown')&&
                (($(window).outerHeight()+$('#scrollzipPoint').offset().top-settings.hideShift)<($(this).offset().top+((settings.wholeVisible)?$(this).outerHeight():0))||
                ($('#scrollzipPoint').offset().top+((settings.wholeVisible)?$(this).outerHeight():0))>($(this).outerHeight()+$(this).offset().top-settings.hideShift))
            ){
                $(this).removeClass('isShown');
                settings.hideFunction.call( this );
            }
        }
        return this;
    });
};
function numberRoller(slno){
        var min=$('.roller-title-number-'+slno).attr('data-min');
        var max=$('.roller-title-number-'+slno).attr('data-max');
        var timediff=$('.roller-title-number-'+slno).attr('data-delay');
        var increment=$('.roller-title-number-'+slno).attr('data-increment');
        var numdiff=max-min;
        var timeout=(timediff*1000)/numdiff;
        numberRoll(slno,min,max,increment,timeout);

}
function numberRoll(slno,min,max,increment,timeout){//alert(slno+"="+min+"="+max+"="+increment+"="+timeout);
    if(min<=max){
        $('.roller-title-number-'+slno).html(min);
        min=parseInt(min)+parseInt(increment);
        setTimeout(function(){numberRoll(eval(slno),eval(min),eval(max),eval(increment),eval(timeout))},timeout);
    }else{
        $('.roller-title-number-'+slno).html(max);
    }
}
})(jQuery);

如果有人能提供解决方案,那就太好了。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果不对整个函数进行筛选,尝试添加逗号,则可以通过将添加逗号的函数运行最终字符串。

您可以使用以下函数,该函数将在每三个字符后分割字符串:

var result = add_comma_grads(12345678);

function add_comma_grads(string){
    var output = string.split( /(?=(?:...)*$)/ );
    return output.join(", ");
}

//this will output 12, 345, 678

您可以将output.join(", ");中的分隔符从", "更改为您想要用来分隔数字的其他内容(例如,如果需要,您可以删除空格)。

以下是指向working fiddle

的链接