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 returns false if len resolves to a starting search position which exceeds the bounds of the input string.

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
Did you find this page helpful?