How do you substring a string in javascript?

Examples

Extract a substring from text:

let text = "Hello world!";
let result = text.substr(1, 4);

Try it Yourself »

Start at position 2:

let result = text.substr(2);

Try it Yourself »

More examples below.


Definition and Usage

The substr() method extracts a part of a string.

The substr() method begins at a specified position, and returns a specified number of characters.

The substr() method does not change the original string.

To extract characters from the end of the string, use a negative start position.


Syntax

string.substr(start, length)

Parameters

Parameter Description
start Required.
The start position.
First character is at index 0.

If start is greater than the length, substr() returns "".
If start is negative, substr() counts from the end of the string.

length Optional.
The number of characters to extract.
If omitted, it extracts the rest of the string

Return Value

Type Description
A string A string containing the extracted part.
If length is 0 or negative, an empty string is returned.


More Examples


Browser Support

substr() is an ECMAScript1 (ES1) feature.

ES1 (JavaScript 1997) is fully supported in all browsers:

Chrome IE Edge Firefox Safari Opera
Yes Yes Yes Yes Yes Yes


The substring() method returns the part of the string between the start and end indexes, or to the end of the string.

Try it

Syntax

substring(indexStart)
substring(indexStart, indexEnd)

Parameters

indexStart

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

indexEnd Optional

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 from indexStart up to but not including indexEnd. In particular:

  • If indexEnd is omitted, substring() extracts characters to the end of the string.
  • If indexStart is equal to indexEnd, substring() returns an empty string.
  • If indexStart is greater than indexEnd, then the effect of substring() is as if the two arguments were swapped; see example below.

Any argument value that is less than 0 or greater than str.length is treated as if it were 0 and str.length, respectively.

Any argument value that is NaN is treated as if it were 0.

Examples

Using substring()

The following example uses substring() to display characters from the string 'Mozilla':

const anyString = 'Mozilla';

// Displays 'M'
console.log(anyString.substring(0, 1));
console.log(anyString.substring(1, 0));

// Displays 'Mozill'
console.log(anyString.substring(0, 6));

// Displays 'lla'
console.log(anyString.substring(4));
console.log(anyString.substring(4, 7));
console.log(anyString.substring(7, 4));

// Displays 'Mozilla'
console.log(anyString.substring(0, 7));
console.log(anyString.substring(0, 10));

Using substring() with length property

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

const text = 'Mozilla';

// Takes 4 last characters of string
console.log(text.substring(text.length - 4)); // prints "illa"

// Takes 5 last characters of string
console.log(text.substring(text.length - 5)); // prints "zilla"

The difference between substring() and substr()

There are subtle differences between the substring() and substr() methods, so you should be careful not to get them confused.

  • The two parameters of substr() are start and length, while for substring(), they are start and end.
  • substr()'s start index will wrap to the end of the string if it is negative, while substring() will clamp it to 0.
  • Negative lengths in substr() are treated as zero, while substring() will swap the two indexes if end is less than start.

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

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

Differences between substring() and slice()

The substring() and slice() methods are almost identical, but there are a couple of subtle differences between the two, especially in the way negative arguments are dealt with.

The substring() method swaps its two arguments if indexStart is greater than indexEnd, meaning that a string is still returned. The slice() method returns an empty string if this is the case.

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 or NaN, the substring() method treats them as if they were 0.

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

slice() also treats NaN arguments as 0, but when it is given negative values it counts backwards from the end of the string to find the indexes.

console.log(text.slice(-5, 2))   // => ""
console.log(text.slice(-5, -2))  // => "zil"

See the slice() page for more examples with negative numbers.

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 to Brave New Web.

// Replaces oldS with newS in the string fullS
function 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 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);
}

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

Specifications

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

Browser compatibility

BCD tables only load in the browser

See also

What substring () and substr () will do?

The difference between substring() and substr() substr() 's start index will wrap to the end of the string if it is negative, while substring() will clamp it to 0 . Negative lengths in substr() are treated as zero, while substring() will swap the two indexes if end is less than start .

How do you substring a string?

You call the Substring(Int32) method to extract a substring from a string that begins at a specified character position and ends at the end of the string. The starting character position is a zero-based; in other words, the first character in the string is at index 0, not index 1.

How do you half a string in JavaScript?

function first_half (str) { if (str. length % 2 == 0) { return str. slice(0, str. length / 2); } return str; } console.

Does string have substring JavaScript?

To check if a substring is contained in a JavaScript string: Call the indexOf method on the string, passing it the substring as a parameter - string. indexOf(substring) Conditionally check if the returned value is not equal to -1. If the returned value is not equal to -1 , the string contains the substring.