Description
The JavaScript String method substring() returns a specific part of a string between the start and end indices.
Syntax
The method substring() has the below syntax, where str is a string.
str.substring(startIndex, endIndex)
Parameters
The method substring() allows the below parameters.
startIndex
- It is the index of the first character to include in the substring.
 
endIndex (optional)
- It is the index of the character to stop including the characters.
 - The character with this index is excluded.
 - If this index is not provided, the method extracts till the end of the string.
 
Both the above parameters are processed as below.
- If any index < 0, it is treated as 0.
 - If any index > str.length, it is treated as str.length.
 - If any index == NaN, it is treated as 0.
 - If startIndex > endIndex, the two arguments are swapped and processed.
 
Result
Returns a new string containing a specific part of a string based on start and end indices.
It doesn't change the original string.
Example 1: Using the Method
The below example shows the basic usage of the method.
var str = "Learning JavaScript is fun";
// Without indices
document.write(str.substring());    // Prints: Learning JavaScript is fun
// Using both start and end indices
document.write(str.substring(0, 1));     // Prints: L
document.write(str.substring(0, 5));     // Prints: Learn
document.write(str.substring(9, 19));    // Prints: JavaScript
// Using both start and end indices with same value
document.write(str.substring(9, 9));    // Prints an empty string
// Using only start index
document.write(str.substring(0));    // Prints: Learning JavaScript is fun
document.write(str.substring(9));    // Prints: JavaScript is fun
Output:
Learning JavaScript is fun
L
Learn
JavaScript
Learning JavaScript is fun
JavaScript is fun
Example 2: Using the Method with Negative Indices
If any of the index value is negative, the method converts such value to 0 (a zero) and executes.
var str = "Learning JavaScript is fun";
// Using one of the index negative
document.write(str.substring(-3, 5));    // Prints: Learn
document.write(str.substring(5, -3));    // Prints: Learn
// Using both indices negative
document.write(str.substring(-5, -5));   // Prints empty string
Output:
Learn
Learn
 
Example 3: Using the Method with NaN Indices
If any of the index values is NaN, the method converts such value to 0 (a zero) and executes.
var str = "Learning JavaScript is fun";
// Using one of the index NaN
document.write(str.substring(NaN, 5));    // Prints: Learn
document.write(str.substring(5, NaN));    // Prints: Learn
// Using both indices NaN
document.write(str.substring(NaN, NaN));  // Prints empty string
Output:
Learn
Learn
 
Example 4: Using the Method with Swapped Indices
If we need to check if a string contains a specific text at a specific index, we can use the position parameter.
var str = "Learning JavaScript is fun";
// Using startIndex < endIndex
document.write(str.substring(9, 19));    // Prints: JavaScript
// Using startIndex > endIndex
document.write(str.substring(19, 9));    // Prints: JavaScript
Output:
JavaScript
JavaScript
Overall
The JavaScript String method substring() returns a specific part of a string between the start and end indices.