endsWith
Test if a string ends with the characters of another string.
Usage
var endsWith = require( '@stdlib/string/ends-with' );
endsWith( str, search[, len] )
Tests if a string ends with the characters of another string.
var str = 'Remember the story I used to tell you when you were a boy?';
var bool = endsWith( str, 'boy?' );
// returns true
bool = endsWith( str, 'Boy?' );
// returns false
To search for a match at the end of a substring, provide a len
argument. If len
is positive, the function restricts the search to a substring with length len
, beginning with the leftmost character. If len
is negative, len
indicates to ignore the last len
characters (equivalent of str.length + len
).
var str = 'To be, or not to be, that is the question.';
var bool = endsWith( str, 'to be', 19 );
// returns true
bool = endsWith( str, 'to be', -23 );
// returns true
If provided an empty search
string, the function always returns true
.
var str = 'beep boop';
var bool = endsWith( str, '' );
// returns true
Notes
In general, exercise caution when operating on substrings containing Unicode characters, as the visual character length may not equal the number of code points. For example,
var len = '🏠'.length; // returns 2
This function differs from
String.prototype.endsWith
in the following ways:- The function requires string values for the first and second arguments and requires that the
len
argument is an integer value. - The function does not clamp positive
len
values to the end of the input string. - Except when provided an empty
search
string, the function always returnsfalse
iflen
resolves to a starting search position which exceeds the bounds of the input string.
- The function requires string values for the first and second arguments and requires that the
Examples
var endsWith = require( '@stdlib/string/ends-with' );
var str = 'Fair is foul, and foul is fair, hover through fog and filthy air';
var bool = endsWith( str, 'air' );
// returns true
bool = endsWith( str, 'fair' );
// returns false
bool = endsWith( str, 'fair', 30 );
// returns true
bool = endsWith( str, 'fair', -34 );
// returns true
CLI
Usage
Usage: ends-with [options] --search=<string> [<string>]
Options:
-h, --help Print this message.
-V, --version Print the package version.
--search string Search string.
--len int Substring length.
--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 $'Hello, World!\nBeep Boop Baz' | ends-with --search=Beep --split /\r?\n/ # Escaped... $ echo -n $'Hello, World!\nBeep Boop Baz' | ends-with --search=Beep --split /\\r?\\n/
The implementation ignores trailing delimiters.
Examples
$ ends-with --search=ep beep
true
To use as a standard stream,
$ echo -n 'boop' | ends-with --search=ep
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 'Hello, World!\tBeep Boop' | ends-with --search=Boop --split '\t'
false
true