String.prototype.slice()

slice() メソッドは、元の文字列を変更せず、文字列の一部分を取り出し、それを新しい文字列として返します。

構文

str.slice(beginIndex[, endIndex])

引数

beginIndex

取り出しを開始する位置を示す 0 から始まるインデックスです。負の値の場合、 str.length + beginIndex として扱われます。 (例えば beginIndex-3 の場合、 str.length - 3 として扱われます。)

beginIndexstr.length 以上である場合、 slice() は空文字列を返します。

endIndex Optional

取り出しを終える前の 0 から始まるインデックスです。このインデックスにある文字は含まれません。

endIndex を省略した場合、 slice() は文字列の末尾までを取り出します。負の値の場合、 str.length + endIndex として扱われます。 (例えば endIndex-3 の場合、 str.length - 3 として扱われます。)

返値

文字列の取り出された部分を含んだ新しい文字列です。

解説

slice() は 1 つの文字列からテキストを取り出し、新しい文字列を返します。一方の文字列におけるテキストへの変更は、他の文字列に影響を与えません。

slice()endIndex を含まずにテキストを取り出します。 str.slice(1, 4) は、 2 番目から 4 番目までの文字 (1, 2, 3 のインデックスの文字) を取り出します。

例えば str.slice(2, -1) は、文字列から 3 番目の文字から最後から 2 番目の文字までを取り出します。

slice() を使って新しい文字列をつくる

以下の例は、新しい文字列を生成するために slice() を使っています。

let 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: ""

負のインデックスで slice() を使う

下記の例は負のインデックスで slice() を使っています。

let 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'

この例は、文字列の末尾から前方に 11 番目を開始インデックスとし、先頭から後方に 16 番目を終了インデックスとします。

console.log(str.slice(-11, 16)) // => "is u"

こちらは先頭から後方に 11 番目を開始インデックスとし、末尾から前方に 7 番目を終了インデックスとします。

console.log(str.slice(11, -7)) // => " is u"

これらの引数は、末尾から前方に 5 番目を開始インデックスとし、末尾から前方に 1 番目を終了インデックスとします。

console.log(str.slice(-5, -1)) // => "n us"

仕様書

仕様書
ECMAScript (ECMA-262)
String.prototype.slice の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
sliceChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 4Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報