言語
日本語
English

Caution

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

JavaScript辞典

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

文字列.slice() / substring()

対応: ES1(ECMAScript 1997)

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

構文

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

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

メソッド一覧

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

サンプルコード

sample_stringSlice.js
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』と出力されます。

// ファイル名から拡張子を取得します。
var filename = "divergence_meter.js";
var dotIndex = filename.lastIndexOf(".");
var ext = filename.slice(dotIndex); // 最後の『.』以降を取得します。
console.log(ext); // 『.js』と出力されます。

// URLからドメイン名を切り出します。
var url = "https://future-gadget-lab.jp/experiment/009";
var domain = url.slice(8, url.indexOf("/", 8)); // "https://" の後からパスの手前まで。
console.log(domain); // 『future-gadget-lab.jp』と出力されます。

// 長い文字列を先頭から一定文字数だけ表示します(省略表示)。
var memo = "エル・プサイ・コングルゥ。これは岡部倫太郎が実験完了時に唱えるパスフレーズです。";
var preview = memo.slice(0, 15) + "…";
console.log(preview); // 『エル・プサイ・コングルゥ。こ…』と出力されます。
Script
Java
Script
Scr
Script
Java

Java
.js
future-gadget-lab.jp
エル・プサイ・コングルゥ。こ…

概要

『文字列.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 以前 ×

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