JavaScriptで文字列を部分的に切り出したい場合、`substring()`メソッドを使用することで簡単に実現できます。この記事では、`substring()`メソッドの基本的な使い方から実践的な例まで、詳しく解説します。

substring()メソッドの基本構文

文字列.substring(開始位置, 終了位置)
  • 開始位置:切り出しを開始する位置(インデックス)
  • 終了位置:切り出しを終了する位置(インデックス)※省略可能

基本的な使い方

const text = "JavaScript";
console.log(text.substring(0, 4)); // "Java"
console.log(text.substring(4)); // "Script"

substring()メソッドの特徴

1. インデックスは0から開始

文字列の位置は0から数えます。

const str = "Hello";
console.log(str.substring(0, 2)); // "He"

2. 終了位置は含まれない

終了位置の文字は結果に含まれません。

const str = "Hello";
console.log(str.substring(1, 4)); // "ell"

3. 終了位置を省略可能

省略すると、文字列の最後まで切り出されます。

const str = "Hello World";
console.log(str.substring(6)); // "World"

よくあるユースケース

1. 文字列の一部を抽出

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

2. 文字列の最後から特定の長さを取得

const text = "このファイルは.pdfです";
const extension = text.substring(text.length - 4);
console.log(extension); // ".pdf"

注意点

1. 負の数の扱い

負の数は0として扱われます。

const str = "Hello";
console.log(str.substring(-3, 4)); // "Hell"

2. 開始位置が終了位置より大きい場合

自動的に位置が入れ替わります。

const str = "Hello";
console.log(str.substring(3, 1)); // "el"

slice()メソッドとの違い

`substring()`の代わりに`slice()`メソッドを使用することもできますが、以下の違いがあります:

  • `slice()`は負の数のインデックスを末尾からの位置として扱います
  • `substring()`は負の数を0として扱います
const str = "Hello";
console.log(str.substring(-3)); // "Hello"
console.log(str.slice(-3)); // "llo"

まとめ

  • `substring()`は文字列から部分文字列を抽出するための基本的なメソッド
  • 開始位置と終了位置を指定して使用
  • 終了位置は省略可能
  • 負の数は0として扱われる
  • 文字列操作の基本的なメソッドとして頻繁に使用される

以上の知識を活用することで、JavaScriptでの文字列操作をより効率的に行うことができます。