Returns a subset of a string between one index and another, or through the end of the string.

Method of String
Implemented in JavaScript 1.0
ECMAScript Edition ECMAScript 1st Edition


string.substring(indexA[, indexB])


An integer between 0 and one less than the length of the string.
(optional) An integer between 0 and the length of the string.


substring extracts characters from indexA up to but not including indexB. In particular:

  • If indexA equals indexB, substring returns an empty string.
  • If indexB is omitted, substring extracts characters to the end of the string.
  • If either argument is less than 0 or is NaN, it is treated as if it were 0.
  • If either argument is greater than stringName.length, it is treated as if it were stringName.length.

If indexA is larger than indexB, then the effect of substring is as if the two arguments were swapped; for example, str.substring(1, 0) == str.substring(0, 1).


Example: Using substring

The following example uses substring to display characters from the string "Mozilla":

// assumes a print function is defined
var anyString = "Mozilla";

// Displays "Moz"

// Displays "lla"

// Displays "Mozill"

// Displays "Mozilla"

Example: Replacing a substring within a string

The following example replaces a substring within a string. It will replace both individual characters and substrings. The function call at the end of the example changes the string "Brave New World" into "Brave New Web".

function replaceString(oldS, newS, fullS) {
// Replaces oldS with newS in the string fullS
   for (var i = 0; i < fullS.length; i++) {
      if (fullS.substring(i, i + oldS.length) == oldS) {
         fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
   return fullS;

replaceString("World", "Web", "Brave New World");

Note that this can result in an infinite loop if oldS is itself a substring of newS -- for example, if you attempted to replace "World" with "OtherWorld" here. A better method for replacing strings is as follows:

function replaceString(oldS, newS,fullS){
    return fullS.split(oldS).join(newS);

See also

substr, slice

Tags (1)

Edit tags

Attachments (0)


Attach file