Is there a JavaScript function that can pad a string to get to a determined length?

前端 未结 30 1671
悲哀的现实
悲哀的现实 2020-11-22 08:28

I am in need of a JavaScript function which can take a value and pad it to a given length (I need spaces, but anything would do). I found this:

Code:

30条回答
  •  日久生厌
    2020-11-22 09:00

    http://www.webtoolkit.info/javascript_pad.html

    /**
    *
    *  Javascript string pad
    *  http://www.webtoolkit.info/
    *
    **/
    
    var STR_PAD_LEFT = 1;
    var STR_PAD_RIGHT = 2;
    var STR_PAD_BOTH = 3;
    
    function pad(str, len, pad, dir) {
    
        if (typeof(len) == "undefined") { var len = 0; }
        if (typeof(pad) == "undefined") { var pad = ' '; }
        if (typeof(dir) == "undefined") { var dir = STR_PAD_RIGHT; }
    
        if (len + 1 >= str.length) {
    
            switch (dir){
    
                case STR_PAD_LEFT:
                    str = Array(len + 1 - str.length).join(pad) + str;
                break;
    
                case STR_PAD_BOTH:
                    var padlen = len - str.length;
                    var right = Math.ceil( padlen / 2 );
                    var left = padlen - right;
                    str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
                break;
    
                default:
                    str = str + Array(len + 1 - str.length).join(pad);
                break;
    
            } // switch
    
        }
    
        return str;
    
    }
    

    It's a lot more readable.

提交回复
热议问题