言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. 文字列.slice() / substring()

文字列.slice() / substring()

文字列の一部を切り出して新しい文字列を返します。元の文字列は変更されません。

構文

// 指定した位置から末尾までを切り出します。
文字列.slice(開始位置)
文字列.slice(開始位置, 終了位置)

// 指定した範囲の文字列を切り出します。
文字列.substring(開始位置)
文字列.substring(開始位置, 終了位置)

メソッド一覧

メソッド概要
slice(開始位置)開始位置から末尾までを切り出します。負の値を指定すると末尾からの位置として扱われます。
slice(開始位置, 終了位置)開始位置から終了位置の手前までを切り出します。終了位置の文字は含まれません。
substring(開始位置)開始位置から末尾までを切り出します。負の値は『0』として扱われます。
substring(開始位置, 終了位置)開始位置から終了位置の手前までを切り出します。開始位置が終了位置より大きい場合は自動的に入れ替えられます。

サンプルコード

var str = "JavaScript";

// slice で切り出します。
console.log(str.slice(4));     // 『Script』と出力されます。
console.log(str.slice(0, 4));  // 『Java』と出力されます。
console.log(str.slice(-6));    // 末尾から6文字を切り出し『Script』と出力されます。
console.log(str.slice(-6, -3)); // 『Scr』と出力されます。

// substring で切り出します。
console.log(str.substring(4));     // 『Script』と出力されます。
console.log(str.substring(0, 4));  // 『Java』と出力されます。

// slice と substring の違い
console.log(str.slice(4, 0));      // 空文字『』が返されます。
console.log(str.substring(4, 0));  // 引数が入れ替わり『Java』と出力されます。

概要

『文字列.slice()』と『文字列.substring()』は文字列の一部を切り出すメソッドです。どちらも開始位置から終了位置の手前までを返し、元の文字列は変更されません。

2つのメソッドの大きな違いは、負の値の扱いと引数の入れ替えです。『文字列.slice()』は負の値を末尾からの位置として扱うため、末尾から文字を切り出す処理に向いています。一方、『文字列.substring()』は負の値を『0』に変換し、開始位置が終了位置より大きい場合は自動的に入れ替えます。

一般的には『文字列.slice()』の方が直感的な動作をするため、多くの場面で推奨されています。配列にも同名の『配列.slice()』メソッドがあり、使い方もほぼ同じです。

対応ブラウザ

Chrome Chrome
49 以降
全バージョンで対応しています
Firefox Firefox
57 以降
全バージョンで対応しています
Safari Safari
18 以降
全バージョンで対応しています
Edge Edge
80 以降
11 以前 ×
IE IE
11 以降
3 以前 ×
Opera Opera
48 以降
3 以前 ×
iOS Safari iOS Safari
18 以降
全バージョンで対応しています
Android Browser Android Browser
37 以降
4 以前 ×
Chrome Android Chrome Android
36 以降
17 以前 ×
Firefox Android Firefox Android
79 以降
3 以前 ×

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。