JavaScript - String.slice()メソッド

JavaScriptのStringオブジェクトのslice()メソッドは、 文字列から部分文字列を取得する場合に使用します。

slice()の構文


slice(開始インデックス[, 終了インデックス])

「開始インデックス」~「終了インデックス - 1」文字目までを取得します。

例えば、slice(0, 3)とした場合は0番目から2番目までの部分文字列を取得します。

開始インデックス

文字列取得を開始する0を先頭とするインデックスです。 負数を指定した場合は、文字列の最後尾から数えます。 例えば、-5の場合は、「文字列の長さ - 5」を開始位置とします。

終了インデックス

省略可能。文字列取得を終了する0を先頭とするインデックスです。 省略した場合は、文字列の最後までを取得します。 負数を指定した場合は、文字列の最後尾から数えます。 例えば、-2の場合は、「文字列の長さ - 2」を開始位置とします。

slice()のサンプルコード

通常の使用方法


let str = '0123456789';

console.log(str.slice(0, 2)); // 01

console.log(str.slice(1, 4)); // 123

console.log(str.slice(2, 6)); // 2345

開始インデックスに0を指定した場合は、先頭から文字列を取得します。

終了インデックス - 1」番目までの部分文字列を取得します。

終了インデックスを省略


let str = '0123456789';

console.log(str.slice(2)); // 23456789

console.log(str.slice(7)); // 789

終了インデックスを省略した場合は、文字列の最後までを取得します。

str.slice(2)」の場合は、2番目の文字から最後までの文字列となります。

開始インデックスに負数を指定


let str = '0123456789';

console.log(str.slice(-5, 8)); // 567

console.log(str.slice(-2)); // 89

開始インデックスに負数を指定した場合は、文字列の最後尾から数えます。

「str.slice(-5, 8)」の場合、文字列strの文字列の長さが10なので、 「10 - 5」の「5」番目のインデックスが開始インデックスとなります。

終了インデックスは「8」なので、「8 - 1」番目の文字列までを取得します。

str.slice(-2)の場合、「10 - 2」の「8」番目のインデックスから最後までを取得します。

終了インデックスに負数を指定


let str = '0123456789';

console.log(str.slice(2, -2)); // 234567

終了インデックスに負数を指定した場合も、文字列の最後尾から数えます。

「slice(2, -2)」の場合、文字列strの文字列の長さが10なので、 「10 - 2」の「8」番目のインデックスが終了インデックスとなり、 さらに「8 - 1」番目までの部分文字列を取得します。

開始インデックス = 終了インデックス

開始インデックスと終了インデックスの値が同じ場合です。


let str = '0123456789';

console.log('★' + str.slice(2, 2) + '★'); // ★★

開始インデックスと終了インデックスの値が同じ場合は、 空文字を返します。

console.log()の結果は、空文字であることがわかるように★で囲っています。