How to check if a string ends with another string in JavaScript

Checking if strings end with specific suffixes is essential for file extension validation, URL path checking, data format detection, and implementing features like file type filtering or domain validation in JavaScript applications. With over 25 years of experience in software development and as the creator of CoreUI, I’ve implemented suffix checking extensively in components like file upload systems, URL validators, and content processors where determining string endings is crucial for proper data handling and user experience. From my extensive expertise, the most modern and straightforward solution is using the ES6 endsWith() method, which provides a clear boolean result. This approach is intuitive, performant, and specifically designed for suffix detection with excellent readability.

Use the endsWith() method to check if a string concludes with a specific substring.

const filename = 'document.pdf'
const isPdf = filename.endsWith('.pdf')
// Result: true

The endsWith() method checks if the string concludes with the specified substring and returns true if it does, or false otherwise. In this example, 'document.pdf'.endsWith('.pdf') returns true because the string indeed ends with ‘.pdf’. The method is case-sensitive, so filename.endsWith('.PDF') would return false unless the original string also uses uppercase. You can optionally specify a length parameter to check only part of the string: filename.endsWith('ment', 8) checks if the first 8 characters end with ‘ment’.

Best Practice Note:

This is the same approach we use in CoreUI components for file type validation, URL suffix checking, and implementing format-based filtering throughout our component ecosystem. For case-insensitive checking, convert both strings to lowercase first: text.toLowerCase().endsWith(suffix.toLowerCase()). For older browser support, use the alternative: text.lastIndexOf(suffix) === text.length - suffix.length. The endsWith() method is supported in all modern browsers and provides cleaner syntax than manual substring comparisons.


Speed up your responsive apps and websites with fully-featured, ready-to-use open-source admin panel templates—free to use and built for efficiency.


About the Author

Subscribe to our newsletter
Get early information about new products, product updates and blog posts.
How to Hide Scrollbar with CSS
How to Hide Scrollbar with CSS

Dealing with Sass Deprecation Warnings in Angular 19
Dealing with Sass Deprecation Warnings in Angular 19

How to Clone an Object in JavaScript
How to Clone an Object in JavaScript

What Does javascript:void(0) Mean?
What Does javascript:void(0) Mean?

Answers by CoreUI Core Team