isDurationString

Test if a value is a duration string.

Usage

var isDurationString = require( '@stdlib/assert/is-duration-string' );

isDurationString( value )

Tests if a value is a duration string.

var bool = isDurationString( '1d' );
// returns true

bool = isDurationString( '1d2h' );
// returns true

Notes

  • The function validates that a value is a string. For all other types, the function returns false.

  • A duration string is a string containing a sequence of time units. A time unit is a non-negative integer followed by a unit identifier. The following unit identifiers are supported:

    • d: days
    • h: hours
    • m: minutes
    • s: seconds
    • ms: milliseconds

    For example, the string 1m3s10ms is a duration string containing three time units: 1m (1 minute), 3s (3 seconds), and 10ms (10 milliseconds). The string 60m is a duration string containing a single time unit: 60m (60 minutes). Time units must be supplied in descending order of magnitude (i.e., days, hours, minutes, seconds, milliseconds).

  • Duration strings are case insensitive. For example, the string 1M3S10MS is equivalent to 1m3s10ms.

Examples

var isDurationString = require( '@stdlib/assert/is-duration-string' );

var bool = isDurationString( '1h' );
// returns true

bool = isDurationString( '1m20ms' );
// returns true

bool = isDurationString( '1d 2h 3m 4s' );
// returns false

bool = isDurationString( 'beep' );
// returns false

bool = isDurationString( null );
// returns false

CLI

Usage

Usage: is-duration-string [options] [<string>]

Options:

  -h,    --help                Print this message.
  -V,    --version             Print the package version.
         --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 $'3m20s\n50ms' | is-duration-string --split /\r?\n/
    # Escaped...
    $ echo -n $'3m20s\n50ms' | is-duration-string --split /\\r?\\n/
    
  • The implementation ignores trailing delimiters.

Examples

$ is-duration-string '1h'
true

To use as a standard stream,

$ echo -n '1x' | is-duration-string
false

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 '1h2m3s\tboop' | is-duration-string --split '\t'
true
false
Did you find this page helpful?