JSPM

utils-pad-string

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q45275F
  • License MIT

Pad a string.

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

NPM version Build Status Coverage Status Dependencies

Pad a string.

Installation

$ npm install utils-pad-string

Usage

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 string length is always len.

    var opts = {
        'lpad': 'boop',
        'rpad': 'woot'
    };
    var str = pad( 'beep', 10, opts );
    // returns 'boobeepwoo'
  • Similarly, if len < str.length, the input string is 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.js

CLI

Installation

To use the module as a general utility, install the module globally

$ npm install -g utils-pad-string

Usage

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
# => bbbbeepppp

Tests

Unit

This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:

$ make test

All 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-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

$ make view-cov

Browser 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-browsers

To view the tests in a local web browser,

$ make view-browser-tests

License

MIT license.

Copyright © 2016. Athan Reines.