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 astring
. For all other types, the function returnsfalse
.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
: daysh
: hoursm
: minutess
: secondsms
: milliseconds
For example, the string
1m3s10ms
is a duration string containing three time units:1m
(1 minute),3s
(3 seconds), and10ms
(10 milliseconds). The string60m
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 to1m3s10ms
.
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