lpad
Left pad a string.
Usage
var lpad = require( '@stdlib/string/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'
By default, an input string is padded with a Unicode "space" character (U+0020). To pad with a different character or sequence of characters, provide a pad
string.
var 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 leastlen
. To generate a padded string having a length equal tolen
var str = lpad( 'boop', 10, 'beep' ); // => length 12 // returns 'beepbeepboop' 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 lengthlen
.
To replicate
String.prototype.padStart
truncation behaviorvar 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'
- The function is not guaranteed to return a string having a length exactly equal to
Examples
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var lpad = require( '@stdlib/string/left-pad' );
var str = 'beep';
var i;
for ( i = 0; i < 100; i++ ) {
console.log( lpad( str, discreteUniform( str.length, str.length+10 ), 'b' ) );
}
CLI
Usage
Usage: lpad [options] --len=<length> [<string>]
Options:
-h, --help Print this message.
-V, --version Print the package version.
--len length Minimum string length.
--pad str String used to pad. Default: ' '.
--split sep Delimiter for stdin data. Default: '/\\r?\\n/'.
Notes
If the split separator is a regular expression, ensure that the
split
option is either properly escaped or enclosed in quotes.# Not escaped... $ echo -n $'beep\nboop' | lpad -len 8 --split /\r?\n/ # Escaped... $ echo -n $'beep\nboop' | lpad -len 8 --split /\\r?\\n/
The implementation ignores trailing delimiters.
Examples
$ lpad beep --len 10 --pad b
bbbbbbbeep
To use as a standard stream,
$ echo -n 'beep' | lpad --len 8
beep
By default, when used as a standard stream, the implementation assumes newline-delimited data. To specify an alternative delimiter, set the split
option.
$ echo -n 'boop\tbeep' | lpad --len 8 --split '\t'
boop
beep