GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • JS Tutorial
  • Web Tutorial
  • A to Z Guide
  • Projects
  • OOP
  • DOM
  • Set
  • Map
  • Math
  • Number
  • Boolean
  • Exercise
  • Introduction3 min read
  • Variables5 min read

This view

  • Original page
  • New address

GeezerVison is showing www.geeksforgeeks.org — Difference between substr() and substring() in JavaScript - GeeksforGeeks

geeksforgeeks
search icon
  • Courses
  • Tutorials
  • Interview Prep
  • JS Tutorial
  • Web Tutorial
  • A to Z Guide
  • Projects
  • OOP
  • DOM
  • Set
  • Map
  • Math
  • Number
  • Boolean
  • Exercise

Difference between substr() and substring() in JavaScript

Last Updated : 11 Jul, 2025

In JavaScript Both of the functions are used to get the specified part of the string, But there is a slight difference between them. substr() and substring() are string methods used to extract parts of a string. The main difference is that substr() accepts a length parameter, while substring() accepts start and end indices.

JavaScript str.substr() Function

The str.substr() function returns the specified number of characters from the specified index from the given string.

Syntax:

str.substr(start, len);

Example: This example uses only one parameter for both functions and produces the same output. 

JavaScript
const str1 = "GeeksForGeeks";
const substrResult = str1.substr(7);
const substringResult = str1.substring(7);

console.log("Str.substr(7) =", substrResult);
console.log("Str.substring(7) =", substringResult);

Output
Str.substr(7) = rGeeks
Str.substring(7) = rGeeks

JavaScript str.substring() Function

This function gets the characters from a string, between two specified indices, and returns the new string.

Syntax:

str.substring(start, end);

Example: This example uses the parameter (3, 7) for both functions and returns the output. 

JavaScript
const str1 = "GeeksForGeeks";
const substrResult = str1.substr(3, 7);
const substringResult = str1.substring(3, 7);

console.log("Str.substr(3, 7) =", substrResult);
console.log("Str.substring(3, 7) =", substringResult);

Output
Str.substr(3, 7) = ksForGe
Str.substring(3, 7) = ksFo

Difference between substr() and substring()

Featuresubstr()substring()
Syntaxstr.substr(start, length)str.substring(start, end)
Parametersstart: Starting indexstart: Starting index
Lengthlength: Number of characters to extractend: Ending index (exclusive)
Negative IndexAccepts negative start (counts from the end)Does not accept negative start or end
Behavior with Negative IndexIf start is negative, it's treated as str.length + start. If length is negative, it's ignored.If either start or end is negative, they are treated as 0.
Handling Omitted ParametersIf length is omitted, extracts characters to the end of the string.If end is omitted, extracts characters to the end of the string.
Comment

Explore

    JavaScript Basics
    • Introduction3 min read
    • Variables5 min read
    • Operators4 min read
    • Control Statements4 min read
    Array & String
    • Arrays6 min read
    • Array Methods4 min read
    • String5 min read
    • String Methods8 min read
    Function & Object
    • Functions4 min read
    • Function Expression3 min read
    • Function Overloading4 min read
    • Objects4 min read
    • Constructors4 min read
    OOP
    • OOP5 min read
    • Classes & Objects4 min read
    • Access Modifiers5 min read
    • Constructor4 min read
    Asynchronous JavaScript
    • Asynchronous2 min read
    • Callbacks4 min read
    • Promises4 min read
    • Event Loop3 min read
    • Async Await Fuction3 min read
    Exception Handling
    • Error and Exceptional Handling5 min read
    • Errors Throw & Try to Catch2 min read
    • Custom Errors2 min read
    • TypeError Invalid Array.prototype.sort argument1 min read
    DOM
    • DOM8 min read
    • DOM Elements3 min read
    • Custom Events4 min read
    • Addeventlistener5 min read
    Advanced Topics
    • Closure3 min read
    • Hoisting5 min read
    • Scope4 min read
    • Higher Order Functions7 min read
    • Debugging3 min read
    Courses
    • Placement 360 Course2 min read
    • MERN Full Stack Course2 min read
    • DSA and System Design Course2 min read
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.