JavaScript

String.prototype.slice メソッド

 編集:2022.08.16 by T.A.

その文字列から、指定位置範囲の文字列を返します。

構文
string= String.slice(beginIndex[, endIndex] )
String String。
beginIndex 取り出しを開始する位置を示す 0 から始まるインデックスです。

負の値の場合、str.length + beginIndex として扱われます。(例えば beginIndex が -3 の場合、str.length -3 として扱われます。)

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

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

endIndex を省略した場合、slice() は文字列の末尾までを取り出します。

負の値の場合、str.length + endIndex として扱われます。(例えば endIndex が -3 の場合、str.length -3 として扱われます。)

戻り値

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

解説

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.'; // str1 の長さは 23 です。
D=str1.slice(1, 8);  //="he morn"
D=str1.slice(4, -2); //="morning is upon u"
D=str1.slice(12);    //="is upon us."
D=str1.slice(30);    //=""
負のインデックスの使用

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

let str = 'The morning is upon us.';
D=str.slice(-3);     //="us."
D=str.slice(-3, -1); //="us"
D=str.slice(0, -1);  //="The morning is upon us"

//この例は、文字列の末尾から前方に 11 番目を開始インデックスとし、先頭から後方に 16 番目を終了インデックスとします:
D=str.slice(-11, 16); //="is u"

//先頭から後方に 11 番目を開始インデックスとし、末尾から前方に 7 番目を終了インデックスとします:
D=str.slice(11, -7); //=" is u"

//これらの引数は、末尾から前方に 5 番目を開始インデックスとし、末尾から前方に 1 番目を終了インデックスとします:
D=str.slice(-5, -1); //="n us"
関連

String.slice()substr()String.substring()


テスト