The slice()
method extracts a section of a string and returns it as a new string.
Syntax
str.slice(beginIndex[, endIndex])
Parameters
beginIndex
- The zero-based index at which to begin extraction. If negative, it is treated as
strLength + beginIndex
wherestrLength
is the length of the string (for example, ifbeginIndex
is-3
it is treated asstrLength - 3
). IfbeginIndex
is greater than or equal to the length of the string,slice()
returns an empty string. endIndex
- Optional. The zero-based index before which to end extraction. The character at this index will not be included. If
endIndex
is omitted,slice()
extracts to the end of the string. If negative, it is treated asstrLength + endIndex
wherestrLength
is the length of the string (for example, ifendIndex
is-3
it is treated asstrLength - 3)
.
Return value
A new string containing the extracted section of the string.
Description
slice()
extracts the text from one string and returns a new string. Changes to the text in one string do not affect the other string.
slice()
extracts up to but not including endIndex
. str.slice(1, 4)
extracts the second character through the fourth character (characters indexed 1, 2, and 3).
As an example, str.slice(2, -1)
extracts the third character through the second to last character in the string.
Examples
Using slice()
to create a new string
The following example uses slice()
to create a new string.
var str1 = 'The morning is upon us.', // the length of str1 is 23. str2 = str1.slice(1, 8), str3 = str1.slice(4, -2), str4 = str1.slice(12), str5 = str1.slice(30); console.log(str2); // OUTPUT: he morn console.log(str3); // OUTPUT: morning is upon u console.log(str4); // OUTPUT: is upon us. console.log(str5); // OUTPUT: ""
Using slice()
with negative indexes
The following example uses slice()
with negative indexes.
var str = 'The morning is upon us.'; str.slice(-3); // returns 'us.' str.slice(-3, -1); // returns 'us' str.slice(0, -1); // returns 'The morning is upon us'
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition. Implemented in JavaScript 1.2. |
ECMAScript 5.1 (ECMA-262) The definition of 'String.prototype.slice' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'String.prototype.slice' in that specification. |
Standard | |
ECMAScript Latest Draft (ECMA-262) The definition of 'String.prototype.slice' in that specification. |
Living Standard |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |