
The JavaScript String object comes with a slice() method that you can use to extract a part of a string.
The method accepts two parameters:
- The
startposition of the portion innumber- required - The
endposition of the portion innumber- optional
Here’s an example of extracting a string using the slice() method:
"Hello World!".slice(0, 5);
// Returns: 'Hello'
"ABCDEFGHIJ".slice(0, 3);
// Returns: 'ABC'
The index count for the string characters starts from zero.
The index you specify as the end position of the slice() method is excluded from the returned value.
You can also omit the end parameter to extract the string up to the last character:
"Hello World!".slice(6);
// Returns: 'World!'
"ABCDEFGHIJ".slice(5);
// Returns: 'FGHIJ'
You can also use negative numbers to select a portion from the end of the string.
The indexing of the string goes like this:
0 1 2 3 4
H e l l o
-5 -4 -3 -2 -1
Let’s see some examples of extracting from the end of the string.
Note that even when you use negative numbers for the positions, the slicing process still goes from left to right:
"Good morning!".slice(-8);
// Returns: 'morning!'
"Good morning!".slice(-13, -9);
// Returns: 'Good'
"Good morning!".slice(-1, -5);
// Returns: ''
In the last example above, the slicing parameters -1 and -5 return an empty string because the indices are out of bounds.
The slice() method always returns an empty string when it can’t perform the extraction.
The same applies when you pass an index that’s greater than the available string length:
"Hello".slice(20);
// Returns: ''
Finally, the slice() method returns a new copy of the string value.
Changing the sliced string won’t change the original string:
let greetings = "Good morning!";
let sliced = greetings.slice(0, 4);
sliced = "Bad";
console.log(greetings); // 'Good morning!'
console.log(sliced); // 'Bad'
And that’s how you use the slice() method to extract a part of a string.
The slice() method is also available for the Array object:
JavaScript Array slice() method
I hope this tutorial has been useful for you. 😉