utils-pad-string v1.0.0
Pad
Pad a string.
Installation
$ npm install utils-pad-stringUsage
var pad = require( 'utils-pad-string' );pad( str, len, opts )
Pads a string such that the padded string has a length of len.
var str = pad( 'a', 5 );
// returns 'a 'The function accepts the following options:
- lpad:
stringused to left pad. Default:''. - rpad:
stringused to right pad. Default:' '. - centerRight:
booleanindicating whether to centerrightin the event of a tie. Default:false(i.e., centerleft).
By default, an input string is padded with spaces. To pad with a different character or sequence of characters, provide a pad string.
var str = pad( 'a', 10, {
'lpad': 'b'
});
// returns 'bbbbbbbbba'
str = pad( 'a', 12, {
'rpad': 'b'
});
// returns 'abbbbbbbbbbb'To center an input string, provide both lpad and rpad options.
var opts = {
'lpad': 'a',
'rpad': 'c'
};
var str = pad( 'b', 11, opts );
// returns 'aaaaabccccc'When both lpad and rpad are specified and len-str.length is odd, left and right padding cannot equally split the available padding space. By default, right padding receives the extra character (i.e., the input string is centered left).
str = pad( 'b', 10, opts );
// returns 'aaaabccccc'To center right, set the centerRight option.
opts.centerRight = true;
str = pad( 'b', 10, opts );
// returns 'aaaaabcccc'Notes
In contrast to utils-left-pad-string and utils-right-pad-string, any padding which does not evenly divide available space is trimmed such that the returned
stringlength is alwayslen.``` javascript var opts = { 'lpad': 'boop', 'rpad': 'woot' }; var str = pad( 'beep', 10, opts ); // returns 'boobeepwoo' ```Similarly, if
len < str.length, the inputstringis trimmed.``` javascript // Pad right, trim right: var str = pad( 'beep', 2 ); // returns 'be' // Pad left, trim left: str = pad( 'beep', 2, { 'lpad': 'b' }); // returns 'ep' // Pad both, trim both: str = pad( 'beep', 2, { 'lpad': '@', 'rpad': '!' }); // returns 'ee' // Pad both, trim both starting from left: str = pad( 'abcdef', 3, { 'lpad': '@', 'rpad': '!' }); // returns 'cde' // Pad both, trim both starting from right: str = pad( 'abcdef', 3, { 'lpad': '@', 'rpad': '!', 'centerRight': true }); // returns 'bcd' ```
Examples
var round = require( 'math-round' );
var pad = require( 'utils-pad-string' );
var str = 'boop';
var out;
var len;
var i;
for ( i = 0; i < 100; i++ ) {
len = round( Math.random()*10 ) + str.length;
out = pad( str, len, {
'pad': 'beep',
'rpad': 'p'
});
console.log( '%s. %d. %d.', out, len, out.length );
}To run the example code from the top-level application directory,
$ node ./examples/index.jsCLI
Installation
To use the module as a general utility, install the module globally
$ npm install -g utils-pad-stringUsage
Usage: padstr [options] str --len length
Options:
-h, --help Print this message.
-V, --version Print the package version.
--len length String length.
--lpad str String used to left pad. Default: ''.
--rpad str String used to right pad. Default: ' '.
--cright Center right in the event of a tie.Examples
$ padstr beep --len 10 --lpad b --rpad p
# => bbbbeeppppTests
Unit
This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:
$ make testAll new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-covIstanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-covBrowser Support
This repository uses Testling for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:
$ make test-browsersTo view the tests in a local web browser,
$ make view-browser-testsLicense
Copyright
Copyright © 2016. Athan Reines.