Differences Between JavaScript Substring vs. Substr

When it comes to string manipulation in JavaScript, developers usually encounter two similar-sounding JavaScript Substring vs. Substr.

Both methods are necessary for extracting portions of a string, but they have complex differences that can impact their usage.

In this article, we will discuss the difference between “substring” and “substr” and provide practical understanding on how to utilize them effectively.

Navigating JavaScript String Manipulation

Manipulating strings is an essential aspect of JavaScript programming.

Whether you are working with user inputs, parsing data, or formatting text, the ability to extract specific segments from a string is important.

That’s where the substring and substr methods come into play. These methods enable you to engrave out portions of a string, allowing you to tailor your data to your specific needs.

JavaScript Substring: Slicing Strings with Precision

The substring method in JavaScript is directed to extract a portion of a string based on specified indices.

Syntax:

string.substring(start, end);

Description

  • start:
    • The index at which the extraction begins (inclusive).
  • end:
    • The index at which the extraction ends (exclusive).

Extracting Subdomains from URLs

Assumed that you have a URL, and you want to extract the subdomain from it. You can use the substring method like this:

Here’s an example code:

const urlSample = "https://sample.example.com";
const subdomainSample = urlSample.substring(8, 15);

Here, the start index is 8 (beginning of “sample“), and the end index is 15 (end of “example“).

JavaScript Substr: Cutting Strings with a Fixed Length

The” substr” method, on the other hand, is used to extract a “substring from a “string“, starting at a specified index and continuing for a specified number of characters.

Syntax:

string.substr(start, length);

Description:

  • start:
    • The index at which the extraction starts.
  • length:
    • The number of characters to extract.

Formatting Phone Numbers

Assume that you have a database of phone numbers in a standardized format, and you want to extract the local area code.

You can use the substr method, here’s an example code:

const phoneNumberSample = "+63 (101) 132-5642";
const areaCodeResult = phoneNumberSample.substr(5, 3); 
console.log(areaCodeResult)

Output:

101

Here, the start index is 5 (beginning of the area code), and the length is 3 (length of the area code).

Comparing substring and substr

At first peek, substring and substr might occur compatible, but their differences are critical.

  • End Index vs. Length:
    • The primary differences depends in how they resolve the extracted portion. substring uses an end index, whereas substr uses a length.
  • Negative Values:
    • substring treats negative indices as 0, while substr interprets negative start values as counting from the end of the string.

Which to Choose JavaScript Substring vs. Substr?

The options between substring and substr depends on the nature of your task.

If you need to defined exact start and end points, substring is your go-to.

Meanwhile, when you are working with a fixed number of characters from a starting position, substr is your solution.

FAQs

Can I use negative indices with both substring and substr?

While substr enables negative indices, substring treats them as 0, extracting from the beginning of the string.

Which method is more compatible for extracting a file extension from a filename?

For extracting file extensions, substr is preferable since you know the start index and the fixed length of the extension.

Does the choice between the two methods affect performance?

In most cases, the performance difference is imperceptible. Choose based on the specific requirements of your task.

Can I combine these methods to extract complex substrings?

Absolutely! You can use these methods in combination to obtain complex string extraction.

Conclusion

In JavaScript string manipulation, understanding the particulars methods like substring and substr allows you to handle text data with finesse.

Whether you are penetrating URLs, formatting data, or crafting complex substring patterns, these methods provide valuable tools in your coding.

By selecting the proper method for your specific scenario, you will integrate your code and improve the efficiency of your applications.

Additional Resources

Frequently Asked Questions

Is JavaScript still worth learning in 2026?
Yes. JavaScript runs on 98% of websites for the front-end, dominates the back-end via Node.js, powers mobile apps through React Native, builds desktop tools through Electron, and is the scripting layer for most AI tooling (LangChain.js, OpenAI SDK, Vercel AI). Whether you target web, mobile, AI, or full-stack capstones, JavaScript is the broadest single language you can learn.
What is the difference between var, let, and const?
var is function-scoped, hoisted to the top of its scope, and can be redeclared, which leads to bugs in modern code. let is block-scoped (only visible inside the nearest {}) and can be reassigned. const is block-scoped and cannot be reassigned, although object contents can still mutate. Default to const for everything, switch to let only when you actually need to reassign, and avoid var in any code written after 2017.
Which JavaScript version should I target in 2026?
Target ES2020 (ES11) as the safe baseline because every modern browser and Node.js 14+ supports it fully. ES2022 adds useful features like top-level await, private class fields with the # prefix, and the .at() array method. If you are writing for older browsers (IE11 or older Android WebViews), transpile down with Babel or use a build tool like Vite, esbuild, or webpack.
What is the best free editor for JavaScript?
Visual Studio Code is the industry standard, free, with built-in IntelliSense, debugger, terminal, Git, and a huge extension marketplace (ESLint, Prettier, GitHub Copilot, Tailwind). Install the JavaScript and TypeScript Nightly extension for the latest language features. JetBrains WebStorm is more powerful and free for students with a verified .edu email. For quick scratchpad work, the Chrome DevTools Sources panel includes a workspace and breakpoint debugger.
How do I run JavaScript locally vs in the browser?
In the browser: open DevTools with F12 (or right-click then Inspect), go to the Console tab, type or paste your code, press Enter. For HTML pages, add a script tag pointing to your .js file. Locally with Node.js: download Node from nodejs.org (LTS version), then run node script.js in your terminal from the file folder. Use the same Node setup for backend capstones, API integrations, and scripts that do not need a browser.
What can I build with JavaScript for my BSIT capstone?
Common BSIT capstones in JavaScript: full-stack web apps using React or Vue on the front-end with Node.js and Express on the back-end (MongoDB or MySQL for the database), real-time chat or notification systems using Socket.io, single-page dashboards with Chart.js or D3.js, cross-platform mobile apps with React Native, AI-powered chatbots using OpenAI SDK and LangChain.js, and Chrome extensions for productivity tools. Add Tailwind CSS for the UI and Vercel or Netlify for free deployment.

Adones Evangelista


Programmer & Technical Writer at PIES IT Solution

Adones Evangelista is a programmer and writer at PIES IT Solution, author of over 900 tutorials and error-fix guides at itsourcecode.com. Specializes in JavaScript, Django, Laravel, and Python error debugging covering ValueError, TypeError, AttributeError, ModuleNotFoundError, and RuntimeError, plus C/C++ and PHP capstone projects for BSIT students.

Expertise: JavaScript · Python · Django · Laravel · Error Debugging · C/C++
 · View all posts by Adones Evangelista →

Leave a Comment