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 2This function differs from
String.prototype.endsWithin the following ways:- The function requires string values for the first and second arguments and requires that the
lenargument is an integer value. - The function does not clamp positive
lenvalues to the end of the input string. - Except when provided an empty
searchstring, the function always returnsfalseiflenresolves 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
splitoption 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