この記事は翻訳作業中です。

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

構文

str.slice(beginIndex[, endIndex])

引数

beginIndex
取り出しを開始する位置を示す 0 から始まるインデックスです。負の値の場合、文字列の長さ + (beginIndex) (例えば beginIndex が -3 の場合、文字列の長さ - 3 )として扱われます。beginIndex が文字列の長さ以上の場合、 slice() は空の文字列を返します。
endIndex
任意です。取り出しを終える位置を示す 0 から始まるインデックスです。endIndex を省略した場合、slice() は文字列の末尾までを取り出します。負の値の場合、文字列の長さ + endIndex (例えば endIndex が -3 の場合、文字列の長さ - 3 )として扱われます。

戻り値

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

詳細

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

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

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

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

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

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

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

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

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'

This example counts backwards from the end of the string by 11 to find the start index and forwards from the start of the string by 16 to find the end index.

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

Here it counts forwards from the start by 11 to find the start index and backwards from the end by 7 to find the end index.

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

These arguments count backwards from the end by 5 to find the start index and backwards from the end by 1 to find the end index.

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

仕様

仕様 ステータス コメント
ECMAScript 3rd Edition (ECMA-262) 標準 初期定義。JavaScript 1.2 で実装。
ECMAScript 5.1 (ECMA-262)
String.prototype.slice の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
String.prototype.slice の定義
標準  
ECMAScript Latest Draft (ECMA-262)
String.prototype.slice の定義
ドラフト  

ブラウザー実装状況

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

凡例

完全対応  
完全対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: segayuu, YuichiNukiyama, mamodayo, teoli, ethertank, Mgjbot, Potappo, Yuichirou
最終更新者: segayuu,