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.