カテゴリ: JavaScript 更新日: 2025/11/09

JavaScriptの文字列の部分を抽出する方法(slice・substring・substr)を徹底解説!

JavaScriptの文字列の部分を抽出する方法(slice, substring, substr)
JavaScriptの文字列の部分を抽出する方法(slice, substring, substr)

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで文字列の一部だけを取り出したいときはどうすればいいですか?」

先生

「とても良い質問ですね。JavaScriptでは、文字列から特定の部分を切り出すために、slice()substring()substr()という3つのメソッドを使うことができます。」

生徒

「3つもあるんですか?それぞれどう違うんですか?」

先生

「それぞれ使い方や動きが少しずつ違うんです。今日は、その違いをわかりやすく説明しますね!」

1. JavaScriptで文字列を部分的に取り出すとは?

1. JavaScriptで文字列を部分的に取り出すとは?
1. JavaScriptで文字列を部分的に取り出すとは?

プログラムを書いていると、「文章の中の一部分だけを取り出したい」と思うことがあります。例えば「Hello, World!」という文字列から「Hello」だけを取り出したい場合などです。
JavaScriptには、このような文字列操作を簡単に行うためのメソッドが用意されています。それがslice()substring()substr()の3つです。

これらはどれも「文字列の一部を切り取る(抽出する)」ためのメソッドですが、少しずつ使い方が異なります。順番に見ていきましょう。

2. slice()メソッドの使い方

2. slice()メソッドの使い方
2. slice()メソッドの使い方

slice()メソッドは、文字列の一部を取り出して新しい文字列を返すメソッドです。最初の引数に「開始位置」、2番目の引数に「終了位置」を指定します。

基本の構文は次のとおりです。


const text = "Hello, World!";
const result = text.slice(0, 5);
console.log(result);

Hello

この例では、textの0文字目(最初の文字)から4文字目までを取り出しています。JavaScriptでは「終了位置」は含まれない点に注意してください。

また、slice()の特徴として、負の値(マイナスの数)を指定すると、文字列の末尾から数えることができます。


const text = "Hello, World!";
const result = text.slice(-6, -1);
console.log(result);

World

このように、slice()は柔軟で、後ろから文字を数えることもできる便利なメソッドです。

3. substring()メソッドの使い方

3. substring()メソッドの使い方
3. substring()メソッドの使い方

substring()メソッドも、指定した範囲の文字列を取り出します。構文はslice()と似ていますが、少しだけ動きが異なります。


const text = "Hello, World!";
const result = text.substring(0, 5);
console.log(result);

Hello

この結果はslice()と同じですが、substring()ではマイナスの値を指定してもエラーにはならず、自動的に「0」として扱われます。また、開始位置と終了位置を逆に指定した場合、自動的に入れ替えてくれます。


const text = "Hello, World!";
const result = text.substring(5, 0);
console.log(result);

Hello

このように、substring()は少し優しい動きをしますが、負の値が使えないため、末尾から数えるような場面には不向きです。

4. substr()メソッドの使い方

4. substr()メソッドの使い方
4. substr()メソッドの使い方

substr()メソッドは、他の2つとは少し違う指定方法をします。最初の引数に「開始位置」、2番目の引数に「取り出す文字数」を指定します。


const text = "Hello, World!";
const result = text.substr(0, 5);
console.log(result);

Hello

また、substr()もマイナスの値を使うことができ、末尾から文字を数えることができます。


const text = "Hello, World!";
const result = text.substr(-6, 5);
console.log(result);

World

このように、substr()は「どこから」「何文字取り出すか」という考え方をします。
ただし、substr()は古い仕様で、今後のJavaScriptでは非推奨(deprecated)とされています。そのため、新しくコードを書く場合はslice()substring()を使うのがおすすめです。

5. 3つのメソッドの違いを比較してみよう

5. 3つのメソッドの違いを比較してみよう
5. 3つのメソッドの違いを比較してみよう

ここまで紹介した3つのメソッドの違いを表にまとめると、次のようになります。


<table class="table table-bordered">
    <thead>
        <tr>
            <th>メソッド名</th>
            <th>引数の意味</th>
            <th>負の値の扱い</th>
            <th>特徴</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><code>slice(start, end)</code></td>
            <td>開始位置と終了位置</td>
            <td>使える(末尾から数える)</td>
            <td>柔軟で現在もっとも推奨される</td>
        </tr>
        <tr>
            <td><code>substring(start, end)</code></td>
            <td>開始位置と終了位置</td>
            <td>負の値は0になる</td>
            <td>古いブラウザでも安全に動作</td>
        </tr>
        <tr>
            <td><code>substr(start, length)</code></td>
            <td>開始位置と文字数</td>
            <td>使える(末尾から数える)</td>
            <td>非推奨(将来的に削除される可能性あり)</td>
        </tr>
    </tbody>
</table>

基本的には、slice()を使えばほとんどのケースをカバーできます。シンプルでわかりやすく、柔軟性も高いため、初心者の方にもおすすめです。

6. 実用例:メールアドレスからドメイン名を取り出す

6. 実用例:メールアドレスからドメイン名を取り出す
6. 実用例:メールアドレスからドメイン名を取り出す

最後に、slice()を使った実用的なサンプルを見てみましょう。例えば、メールアドレス「user@example.com」から「example.com」だけを取り出す場合です。


const email = "user@example.com";
const index = email.indexOf("@");
const domain = email.slice(index + 1);
console.log(domain);

example.com

このようにslice()を使えば、特定の記号以降の部分を簡単に取得できます。文字列処理では頻繁に使われるテクニックです。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでPromiseの型推論をマスター!非同期処理とasync/awaitの基礎講座
New2
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
New3
JavaScript
JavaScriptのBigInt型とは?大きな整数の扱い方と活用例
New4
JavaScript
JavaScriptでスクロール位置を取得・操作する方法を完全解説!scrollTopなどDOM操作入門
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのクロージャーとは?仕組みと実践例をやさしく解説
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptで新しい要素を作成する方法(createElement, appendChildなど)
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptのプロジェクトをtscでビルドする基本操作を解説!初心者にもわかるステップバイステップ
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでフォーム要素を操作するDOMテクニックを初心者向けに徹底解説
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで親要素・子要素・兄弟要素を取得する方法を初心者向けに徹底解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptでnull・undefinedを型ガードするテクニックを徹底解説!初心者でも理解できる安全なコードの書き方
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】