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 

Chủ Đề