Test if a string ends with the characters of another string.
var endsWith = require( '@stdlib/string/ends-with' );
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
-
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
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
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/'.
-
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.
$ 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
@stdlib/string/starts-with
: test if a string starts with the characters of another string.