References

Beginner-friendly references for web development, with live, editable examples.

The JavaScript string.endsWith() method

Method JavaScript All modern browsers Updated
Quick answer

The endsWith() method checks whether a string ends with a given substring and returns true or false. "photo.png".endsWith(".png") is true. It's perfect for checking file extensions and suffixes, and it's the mirror of startsWith(). The match is case-sensitive.

Overview

endsWith() tells you whether a string finishes with some text, returning a clean boolean. "report.pdf".endsWith(".pdf") is the textbook use, checking a file's extension without slicing or a regex. It reads exactly like what it does, which makes the intent obvious.

It's the tail-end counterpart to startsWith(): one checks the beginning, the other the end. The match is case-sensitive, so lowercase both sides first if case shouldn't matter (important for extensions, since files can be .PNG or .png).

An optional second argument lets you treat the string as if it ended at a given length, which is occasionally useful for checking a prefix region. For a match anywhere in the string rather than at the end, use includes().

Syntax

str.endsWith(searchString)
str.endsWith(searchString, endPosition)

"photo.png".endsWith(".png")  // true
"photo.png".endsWith(".jpg")  // false

Parameters

The string.endsWith() method accepts the following parameters.

Parameter Description
searchString The text to test for at the end. Case-sensitive.
endPosition Optional. Treat the string as if it ended at this length. Defaults to the full length.

Example

Live example
<pre id="out" style="font:15px ui-monospace,monospace"></pre>
<script>
  const files = ['logo.PNG', 'data.csv', 'photo.png'];

  const images = files.filter(f => f.toLowerCase().endsWith('.png'));

  document.getElementById('out').textContent =
    'images: ' + images.join(', '); // images: logo.PNG, photo.png
</script>

Best practices

  • Use it to check file extensions and suffixes: name.endsWith(".pdf").
  • Lowercase both strings first for a case-insensitive check (extensions vary in case).
  • Use startsWith() for the beginning of a string.
  • For a match anywhere, not just the end, use includes().

Frequently asked questions

How do I check if a string ends with something?
Use str.endsWith("suffix"), which returns true or false.
How do I check a file extension in JavaScript?
Use filename.toLowerCase().endsWith(".png"); the lowercasing handles mixed-case extensions.
Is endsWith() case-sensitive?
Yes. Lowercase both the string and the search text to ignore case.
What is the difference between endsWith() and includes()?
endsWith() only matches at the end; includes() matches anywhere in the string.