Package Exports
- utils-pad-string
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (utils-pad-string) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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: string used to left pad. Default: ''.
* rpad: string used to right pad. Default: ' '.
* centerRight: boolean indicating whether to center right in the event of a tie. Default: false (i.e., center left).
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.var opts = { 'lpad': 'boop', 'rpad': 'woot' }; var str = pad( 'beep', 10, opts ); // returns 'boobeepwoo'
Similarly, if
len < str.length, the inputstringis trimmed.// 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.