Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

String.prototype.substring()

BaselineWidely available

Thesubstring() method ofString values returns the part of this string from the start index up to and excluding the end index, or to the end of the string if no end index is supplied.

Try it

const str = "Mozilla";console.log(str.substring(1, 3));// Expected output: "oz"console.log(str.substring(2));// Expected output: "zilla"

Syntax

js
substring(indexStart)substring(indexStart, indexEnd)

Parameters

indexStart

The index of the first character to include in the returned substring.

indexEndOptional

The index of the first character to exclude from the returned substring.

Return value

A new string containing the specified part of the given string.

Description

substring() extracts characters fromindexStart up tobut not includingindexEnd. In particular:

  • IfindexEnd is omitted orundefined,substring() extracts characters to the end of the string.
  • IfindexStart is equal toindexEnd,substring() returns an empty string.
  • IfindexStart is greater thanindexEnd, then the effect ofsubstring() is as if the two arguments were swapped; see example below.

Any argument value that is less than0 or greater thanstr.length is treated as if it were0 andstr.length, respectively.

Any argument value that isNaN is treated as if it were0.

Examples

Using substring()

The following example usessubstring() to display characters from thestring"Mozilla":

js
const anyString = "Mozilla";console.log(anyString.substring(0, 1)); // "M"console.log(anyString.substring(1, 0)); // "M"console.log(anyString.substring(0, 6)); // "Mozill"console.log(anyString.substring(4)); // "lla"console.log(anyString.substring(4, 7)); // "lla"console.log(anyString.substring(7, 4)); // "lla"console.log(anyString.substring(0, 7)); // "Mozilla"console.log(anyString.substring(0, 10)); // "Mozilla"

Using substring() with length property

The following example uses thesubstring() method andlength property to extract the last characters of aparticular string. This method may be easier to remember, given that you don't need toknow the starting and ending indices as you would in the above examples.

js
const text = "Mozilla";// Takes 4 last characters of stringconsole.log(text.substring(text.length - 4)); // prints "illa"// Takes 5 last characters of stringconsole.log(text.substring(text.length - 5)); // prints "zilla"

The difference between substring() and substr()

There are subtle differences between thesubstring() andsubstr() methods, so you should be careful not to getthem confused.

  • The two parameters ofsubstr() arestart andlength, while forsubstring(), they arestart andend.
  • substr()'sstart index will wrap to the end of the string if it is negative, whilesubstring() will clamp it to0.
  • Negative lengths insubstr() are treated as zero, whilesubstring() will swap the two indexes ifend is less thanstart.

Furthermore,substr() is considered alegacy feature in ECMAScript, so it is best to avoid using it if possible.

js
const text = "Mozilla";console.log(text.substring(2, 5)); // "zil"console.log(text.substr(2, 3)); // "zil"

Differences between substring() and slice()

Thesubstring() andslice() methods arealmost identical, but there are a couple of subtle differences between the two,especially in the way negative arguments are dealt with.

Thesubstring() method swaps its two arguments ifindexStart is greater thanindexEnd,meaning that a string is still returned. Theslice()method returns an empty string if this is the case.

js
const text = "Mozilla";console.log(text.substring(5, 2)); // "zil"console.log(text.slice(5, 2)); // ""

If either or both of the arguments are negative orNaN, thesubstring() method treats them as if they were0.

js
console.log(text.substring(-5, 2)); // "Mo"console.log(text.substring(-5, -2)); // ""

slice() also treatsNaN arguments as0, but whenit is given negative values it counts backwards from the end of the string to find theindexes.

js
console.log(text.slice(-5, 2)); // ""console.log(text.slice(-5, -2)); // "zil"

See theslice() page for more examples with negativenumbers.

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 creates a stringBrave New Web from the original stringBrave New World.

js
// Replaces oldS with newS in the string fullSfunction replaceString(oldS, newS, fullS) {  for (let 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 ifoldS is itself asubstring ofnewS — for example, if you attempted to replace"World" with"OtherWorld" here.

A better method for replacing strings is as follows:

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

The code above serves as an example for substring operations. If you need to replacesubstrings, most of the time you will want to useString.prototype.replace().

Specifications

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.substring

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp