lpad

Left pad a string.

Usage

var lpad = require( '@stdlib/string/base/left-pad' );

lpad( str, len, pad )

Left pads a string such that the padded string has a length of at least len.

var str = lpad( 'a', 5, ' ' );
// returns '    a'

str = lpad( 'beep', 10, 'b' );
// returns 'bbbbbbbeep'

str = lpad( 'boop', 12, 'beep' );
// returns 'beepbeepboop'

Notes

  • An output string is not guaranteed to have a length of exactly len, but to have a length of at least len. To generate a padded string having a length equal to len

    var str = lpad( 'boop', 10, 'beep' ); // => length 12
    // returns 'beepbeepboop'
    
    str = str.substring( 0, 10 ); // => length 10
    // returns 'beepbeepbo'
    
    str = str.substring( str.length-10 ); // => length 10
    // returns 'epbeepboop'
    
  • This function differs from String.prototype.padStart in the following ways:

    • The function is not guaranteed to return a string having a length exactly equal to len (as explained above).
    • The function does not truncate pad (from the end) in order to ensure the returned string has length len.

    To replicate String.prototype.padStart truncation behavior

    var floorb = require( '@stdlib/math/base/special/floorb' );
    
    function padStart( str, len, pad ) {
        var n;
        if ( len <= str.length ) {
            return str;
        }
        n = floorb( len-str.length, 1, pad.length ) + str.length;
        return pad.substring( 0, len-n ) + lpad( str, n, pad );
    }
    
    var str = padStart( 'boop', 10, 'beep' );
    // returns 'bebeepboop'
    

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var papply = require( '@stdlib/utils/papply' );
var papplyRight = require( '@stdlib/utils/papply-right' );
var naryFunction = require( '@stdlib/utils/nary-function' );
var map = require( '@stdlib/utils/map' );
var logEach = require( '@stdlib/console/log-each' );
var lpad = require( '@stdlib/string/base/left-pad' );

// Define a string to pad:
var str = 'beep';

// Generate random lengths:
var lens = discreteUniform( 10, str.length, str.length+10 );

// Create a function for creating padded strings:
var fcn = naryFunction( papply( papplyRight( lpad, 'b' ), str ), 1 );

// Generate padded strings:
var out = map( lens, fcn );

// Print results:
logEach( '%s', out );
Did you find this page helpful?